본문 바로가기

스터디-ing/Cloud

[Redis] Common In-Memory Use Cases

1. Caching

1.1. Query caching

  • Hit rate 고려해서 사용

1.2. full web-page caching

  • 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)하이브리드 형식으로 사용

'스터디-ing > Cloud' 카테고리의 다른 글

[S3] Signed URL로 파일 업로드, 트래픽 줄이기  (0) 2024.05.24
[Redis] Redis 데이터 구조  (0) 2024.05.23
[Redis] AWS Redis에 대해  (0) 2024.05.23