본문 바로가기

TIL

TIL#60(캐시/대기열 - Redis)

오늘 한일
  • 캐시/대기열 - Redis

redis의 자료구조 중 sorted set을 활용하게 되면 rdb를 활용하는 것보다 성능적인 면에서 우수하고 In-memory 저장소로 높은 처리량을 가지고 있기 때문에 많은 트래픽을 잘 버틸 수 있기 때문에 캐시/대기열에 구현에 강점을 보인다.

 

  • 캐시 레이어 - Redis는 한 번 조회된 데이터를 미리 특정 공간에 저장해놓고, 똑같은 요청이 발생하게 되면 미리 저장해둔 데이터를 제공하여 다시 DB를 조회하지 않고 빠르게 데이터를 가져올 수 있고 자동 만료 정책으로 설정한 시간이 지나면 자동으로 데이터를 삭제해 캐시가 최신 상태를 유지하고, 메모리 사용량을 관리할 수 있다.
  • 대기열 - Redis의 Sorted Set을 활용하여 대기열 서버를 구현 할 수 있다

redis sorted set은 score에 따라 정렬되는 고유한 members의 모음으로 member의 score 기반으로 정렬 되며 score가 같으면 사전순으로 정렬 된다. (members는 고유한 값이 들어가므로 RANK가 중복 될 경우는 존재하지 않는다.)

redis sorted set 예시

 

  • Redis cluster

Redis cluster는 데이터를 다종으로 여러 개의 Redis 노드에 나누어 저장할 수 있는 방법을 제공한다. 또한 일부 노드가 죽거나 통신이 되지 않을 때에도 작업을 계속할 수 있는 가용성을 제공한다. 단 과반수의 master 노드가 죽는 경우에는 클러스터도 중단된다.

 

장점

  • 자동으로 여러 노드에 데이터를 나누어 저장
  • 일부 노드가 죽거나 통신이 되지 않을 때 작업 지속 가능

보통 어느 정도 이상의 규모가 있는 프로젝트에서 Redis 사용시 권장되는 기능이지만 유지 보수에 비용이 많이 든다.

 

 

https://redis.io/

 

Redis - The Real-time Data Platform

Developers love Redis. Unlock the full potential of the Redis database with Redis Enterprise and start building blazing fast apps.

redis.io

 

어려웠던 점
  • redis의 캐시와 대기열 구현의 장점에 대해 배웠지만 실제로 적용하기는 어려울 것 같다. (실제로 대기열 기능을 만들어보고 Bull Queue까지 적용해보면 좋을 것 같다.)
오늘의 TIP
  • Redis-cli sorted set 명령어
  • ZADD : 추가 (ZADD Key Score Member)
  • ZRANGE : 조회 (ZRANGE Key start stop) Score도 같이 보고 싶다면 뒤에 WITHSCORES를 추가해준다.

'TIL' 카테고리의 다른 글

TIL#62(async/await, 호이스팅)  (0) 2024.07.26
TIL#61(var, let, const, Promise)  (2) 2024.07.23
TIL#59(Endian)  (0) 2024.07.18
TIL#58(운영체제)  (0) 2024.07.16
TIL#57(커넥션 풀)  (0) 2024.07.15