issues
search
caffeine-library
/
system-design-interview
🌱 가상 면접 사례로 배우는 대규모 시스템 설계 기초를 읽는 스터디
4
stars
0
forks
source link
[additional] Redis 개요
#5
Closed
JasonYoo1995
closed
2 years ago
JasonYoo1995
commented
2 years ago
연관 챕터
1
조사 내용
인메모리(In-memory) Key-Value 데이터 저장소 (NoSQL)
파레토 법칙(Pareto Principle) : 캐싱을 통해 효율을 극대화할 수 있는 이유
String, List, Set, Sorted Set, Hash 등의 다양한 자료 구조 제공
각 자료형마다 장단점이 있으므로 비즈니스 로직의 특성에 맞게 Trade-Off를 고려하여 선택
ex) Sorted Set을 활용하면, Key에 대하여 정렬된 상태로 데이터를 제공받을 수 있음
사용 용도
DB에 대한 캐시
Client 입장 : Read/Write 속도 향상
DB 입장 : 부하 감소
다양한 캐싱 전략 : #7 참고
Shared Memory
분산 환경에서 여러 서버가 같은 값을 공유할 수 있음
사용자 세션 관리
Pub/Sub
ex) 채팅, 푸시 알림
Disk 저장 기능 (Optional)
Memory에 있는 데이터의 유실을 방지하기 위해 Disk에 저장(백업)할 수 있음
예를 들어, Redis 서버가 Shutdown 된 뒤 Restart 했을 때 데이터 복구 가능
Snapshot
특정 시점의 데이터를 Disk에 옮겨 담음
AOF(Append Only File)
모든 Write 연산을 Log 파일에 기록
Log에 적힌 모든 연산을 재실행하여 데이터 복구
공식 문서의 권장 사항 : 2가지 방법을 혼용
Snapshot과 AOF를 둘 다 사용하면 영속성을 보장할 수 있음
주기적으로 Snapshot을 찍고 해당 Snapshot 이후의 연산들은 AOF로 기록
Redis Cluster
Topology
Master-Slave 구성
Master가 죽을 경우를 대비해 가용성 확보
Slave는 Master의 데이터를 Non-blocking으로 복제(Replication)
Slave는 Read-only
Sharding
Horizontal Partitioning을 통해 부하를 분산하여 성능 향상
주의 사항
C사 버그 사례
Key의 개수가 21억 개(int 범위)를 초과해서 Overflow 발생
참고
@caffeine-library/readers-system-design-interview
연관 챕터
1
조사 내용
String, List, Set, Sorted Set, Hash 등의 다양한 자료 구조 제공
사용 용도
Disk 저장 기능 (Optional)
Redis Cluster
주의 사항
@caffeine-library/readers-system-design-interview