redis edu 5
TRANSCRIPT
![Page 2: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/2.jpg)
데이터 분배
![Page 3: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/3.jpg)
Range
![Page 4: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/4.jpg)
Range 1~백만: 1번 백만1~2백만: 2번
![Page 5: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/5.jpg)
Range Range가 너무 크면 서버별 사용 리소스가 크게 차이날 수 있다.
![Page 6: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/6.jpg)
Range 서버 추가 시에 Range 조절이 없으면 데이터 이동이 없다.
![Page 7: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/7.jpg)
Range
User #1
User #10
User #1000000
User #1000001
User #1000100
User #2000000
User #2000001
User #2000200
User #3000000
Server User #1000005
2
![Page 8: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/8.jpg)
Modulo
![Page 9: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/9.jpg)
Modulo
Id % 서버대수 = k
![Page 10: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/10.jpg)
Modulo 서버 대수에 따라서 데이터 이동이 많아짐.
![Page 11: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/11.jpg)
Modulo 가능하면 2배씩 증가하는 게 유리.
![Page 12: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/12.jpg)
Modulo Logical Shard Physical Shard
![Page 13: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/13.jpg)
Modulo
User #1
User #4
User #7
User #2
User #5
User #8
User #3
User #6
User #9
Server User #1
1
![Page 14: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/14.jpg)
Consistent Hash
![Page 15: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/15.jpg)
서버의 추가/제거 시에 1/n 정도의 데이터만 사라진다.
Consistent Hash
![Page 16: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/16.jpg)
다른 방식은 데이터의 서버위치가 고정적이지만, CH는 유동적
Consistent Hash
![Page 17: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/17.jpg)
A
Add A,B,C Server
![Page 18: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/18.jpg)
A
B
Add A,B,C Server
![Page 19: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/19.jpg)
A
B
C
Add A,B,C Server
![Page 20: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/20.jpg)
A
B
C
1
Add Item 1
![Page 21: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/21.jpg)
A
B
C
1
2
Add Item 2
![Page 22: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/22.jpg)
A
B
C
1
2
3
4
5
Add Item 3,4,5
![Page 23: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/23.jpg)
A
B
C 2
3
4
5
Fail!! B Server
![Page 24: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/24.jpg)
A
B
C
1
2
3
4
5
Add Item 1 Again -> Allocated C Server
![Page 25: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/25.jpg)
A
B
C
1
2
3
4
5
1
Recover B Server -> Add Item 1
![Page 26: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/26.jpg)
Indexed
![Page 27: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/27.jpg)
Indexed 해당 데이터가 어디 존재하는지 Index 서버가 따로 존재
![Page 28: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/28.jpg)
Indexed 해당 데이터가 어디 존재하는지 Index 서버가 따로 존재
![Page 29: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/29.jpg)
Indexed Index 변경으로 데이터 이동이 자유롭다.
![Page 30: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/30.jpg)
Indexed Index 서버에 대한 관리가 추가로 필요.
![Page 31: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/31.jpg)
Indexed
User #1
User #2000
User #1000000
User #2
User #2001
User #10000
User #3
User #6
User #5000
Server User #5000
3
Index Server
User 5000 is in 3
![Page 32: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/32.jpg)
그외 이슈들 캐시는 얼마나 둬야 할까? 또는 사이징?
Multiget Hole 문제
로컬 캐쉬
![Page 33: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/33.jpg)
캐시 사이징 최근의 추세는 캐시빨…
데이터량, 처리 속도등을 고려해야 함
캐시 서버가 몇대까지 죽어도 괜찮을까?
장비가 많은것 보다는 좋은 장비에 여러 개 띄우는게 더 유리…
![Page 34: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/34.jpg)
로컬 캐쉬 보통은 Remote Cache
Network, Latency, 성능등의 이슈
적절한 로컬 캐쉬를 사용하면 유리
Expire Time을 짧게 가져감
![Page 35: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/35.jpg)
Multiget Hole 친구의 정보를 가져올 때…
캐시 서버가 1대에서 3대로 늘면…
정말 캐시 서버의 부하는 1/3일까요?
내 친구 모두를 가져오면…
![Page 36: Redis edu 5](https://reader030.vdocuments.mx/reader030/viewer/2022013118/55a4e2cd1a28ab07658b4579/html5/thumbnails/36.jpg)
Thank you.