Redis를 cache·counter·queue·log 저장소로 쓸 때의 데이터 패턴부터 persistence·HA 아키텍처 선택, 그리고 single-thread 특성에서 오는 운영 장애 지점까지 폭넓게 정리한다. 각 접근 방식의 트레이드오프를 짚어 상황에 맞는 선택 기준을 제시한다.
핵심 포인트- 접근 패턴별로 Look-aside(miss 시 DB 조회, 사전 warming 필요), write-around(cache-DB 불일치 가능), write-through(일관성 보장하나 매 write 비용)를 expire time과 함께 설계
- 자료구조 선택: 단순 count는 INCR, 연속 정수 방문 여부는 Bitmap, 대규모 cardinality는 고정 12KB HyperLogLog, polling 없는 queue는 List blocking pop, 소규모 log·broker는 append-only Stream
- persistence는 RDB(작고 빠른 복구, 최근 변경 손실)와 AOF(높은 내구성, rewrite 필요)를 손실 허용 범위로 선택. HA는 replication→Sentinel 자동 failover→Cluster shard 순으로 판단. KEYS→SCAN, DEL→UNLINK, allkeys-LRU와 fork copy-on-write 대비 maxmemory를 물리 메모리 절반으로
왜 읽나Redis를 단순 캐시를 넘어 운영하는 개발자에게 자료구조·persistence·HA·장애 예방을 한 번에 훑는 실전 체크리스트.