TTL: 설정한 기간 동안 데이터를 유지한다는 것을 보장함. TTL 지난 데이터는 바로 삭제되지 않고 여유가 될 때 지워짐
Eviction: 데이터 용량이 꽉 차면 어떤 데이터부터 지울 것인지 설정해야 함
key를 만들때 어렵고 복잡하게 만든다고 redis에서 파티셔닝 성능이 높아지지 않음
key를 hash 함수를 이용해 hash 값으로 지정하는 것이 best practice
Redis 캐싱 지표
2. Session Store
Access Token은 Redis에 저장하고 Refresh Token은 영속성 있는 RDB에 저장해서 관리하는 경우도 있음
3. Leaderboards
RDB에서 집계, 순위 함수를 사용하는 것보다 Redis 데이터 구조를 활용하는 것이 훨씬 빠른 속도를 보여줌.
4. Geospatial
택시의 경우 실시간 위치를 업데이트하는 Data Store나 Stream이 필요
다이나모DB 차량 히스토리 데이터 업데이트 ElastiCache 실시간 데이터 업데이트 해서 위치기반 택시 호출
5. Chat & Messaging
Key - value 스토어가 잘 맞음
Redis의 pub-sub은 기본적으로 브로드캐스팅 방식 cluster모드에서 pub-sub을 사용하면 node의 개수가 늘어날 때마다 각 노드로 브로드캐스팅 해줘야 하기 때문에 성능이 저하됨. 7점대 부터는 샤디드 pub-sub을 사용하면 하나의 샤드 안에서만 성능 100% 보장. 그 외 100의 성능 보장하기 위해서는 노드 개수가 1개일 때. 그래서 권장하지 않음
6. Machine Learning
대표적으로 OTT 애플리케이션의 개인화된 추천 리스트를 저장할 때 많이 사용
Data store에 미리 추천 데이터를 계산해 두고 접속하면 보여줌
동시 접속 시 런타임에 모두 처리 불가능하기 때문에 (다이나모DB + Elastic Cache)하이브리드 형식으로 사용