캐시 무효화 전략 설계로 Redis 도입 경험
팀 프로젝트에서 세션 관리를 DB에 저장하다가 조회 빈도가 높아지자 Redis를 캐시 레이어로 도입한 경험이 있습니다. 가장 먼저 고민한 건 어떤 데이터를 캐싱하고 어떤 TTL을 줄 것인가였는데, 변경이 자주 일어나는 데이터를 캐싱하면 오히려 정합성 문제가 생긴다는 걸 초반에 배웠습니다.
TTL과 캐시 무효화 전략을 설계하면서 캐시를 쓰는 것보다 올바르게 무효화하는 것이 훨씬 어렵다는 점을 체감했습니다. Redis를 선택한 이유는 읽기 속도보다 데이터 구조의 다양성 때문이었는데, 순위 목록 구현에 sorted set을 쓰니 별도 정렬 로직이 필요 없었습니다. 지금도 캐싱 도입 전에 캐시 미스와 무효화 시나리오를 먼저 그려보는 순서를 지킵니다.