우아한 레디스 영상과 구글링을 참조해서 작성된 문서입니다. (https://youtu.be/mPB2CZiAkKM)
Redis
- in-memory 자료구조다.
- 오픈소스인만큼 수정해서 사용해도 상관없다.
- 레디스가 서포팅하는 자료구조
- String, set, sorted-set, hashes, list
- Hyperloglog, bitmap, geospatial index
- Stream
Redis의 자료구조는 Atomic하기때문에 Race Condition을 피할 수 있다.
그래도 잘못짜면 발생
왜 Collection이 중요한가?
Redis 사용처
- Remote Data Store
- A, B, C 서버에서 데이터를 공유하고 싶을때
- 한 대 에서만 필요하다면 전역 변수를 쓰면 되지 않을까?
- Redis가 아토믹 보장
- 주로 많이 쓰는 곳들
- 인증 토큰 저장
- Ranking board
Redis Collections
- Strings
- List - LPUSH, LPOP, RPUSH, RPOP(왼쪽, 오른쪽에서 push, pop 가능)
- Set - 데이터가 있는지 없는지만 체크하는 용도
- Sorted Set - score를 통해 순서를 만듦
- Hash
Redis 운영
- 메모리 관리를 잘하자
- O(N) 관련 명령어는 주의하자
- Replication
Redis 데이터 분산 방법
1. 모듈러같은 방식으로 데이터를 분산하면 서버가 증가되고, 감소될때마다 리밸런싱이 일어나야됨
2. 키 값 해싱을 통해 자기보다 크지만 가장가까운 값으로 이동
Redis Cluster
Hash 기반으로 Slot 16384로 구분
장점
- 자체적인 Primary, Secondary Failover
- Slot 단위의 데이터 관리
단점
- 메모리 사용량 더 많음
- Migration 자체는 관리자가 시점을 결정해야 함
- 라이브러리 구현이 필요
'Computer Science > DB' 카테고리의 다른 글
MongoDB 기본 개념에 대해 알아보기 (정리) (0) | 2022.05.13 |
---|---|
DB 기초 (0) | 2022.02.03 |
트랜잭션 (0) | 2021.11.30 |
NoSQL (0) | 2021.10.29 |
정규화 (0) | 2021.10.29 |