오늘 한일
- 캐시/대기열 - Redis
redis의 자료구조 중 sorted set을 활용하게 되면 rdb를 활용하는 것보다 성능적인 면에서 우수하고 In-memory 저장소로 높은 처리량을 가지고 있기 때문에 많은 트래픽을 잘 버틸 수 있기 때문에 캐시/대기열에 구현에 강점을 보인다.
- 캐시 레이어 - Redis는 한 번 조회된 데이터를 미리 특정 공간에 저장해놓고, 똑같은 요청이 발생하게 되면 미리 저장해둔 데이터를 제공하여 다시 DB를 조회하지 않고 빠르게 데이터를 가져올 수 있고 자동 만료 정책으로 설정한 시간이 지나면 자동으로 데이터를 삭제해 캐시가 최신 상태를 유지하고, 메모리 사용량을 관리할 수 있다.
- 대기열 - Redis의 Sorted Set을 활용하여 대기열 서버를 구현 할 수 있다
redis sorted set은 score에 따라 정렬되는 고유한 members의 모음으로 member의 score 기반으로 정렬 되며 score가 같으면 사전순으로 정렬 된다. (members는 고유한 값이 들어가므로 RANK가 중복 될 경우는 존재하지 않는다.)
- Redis cluster
Redis cluster는 데이터를 다종으로 여러 개의 Redis 노드에 나누어 저장할 수 있는 방법을 제공한다. 또한 일부 노드가 죽거나 통신이 되지 않을 때에도 작업을 계속할 수 있는 가용성을 제공한다. 단 과반수의 master 노드가 죽는 경우에는 클러스터도 중단된다.
장점
- 자동으로 여러 노드에 데이터를 나누어 저장
- 일부 노드가 죽거나 통신이 되지 않을 때 작업 지속 가능
보통 어느 정도 이상의 규모가 있는 프로젝트에서 Redis 사용시 권장되는 기능이지만 유지 보수에 비용이 많이 든다.
어려웠던 점
- 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 |