728x90
📚 Redis Data Types (Advanced)
Redis는 기본 타입 외에도 다양한 고급 자료구조를 지원합니다.
정렬, 비트 연산, 통계 등 특수 목적에 적합한 자료형을 알아봅니다.
5. 🏅 Sorted Sets (ZSET)
- Set과 유사하게 중복 없는 값의 집합
- 각 요소는 score와 함께 저장되어 자동 정렬
- 리더보드, 순위 계산 등에 유용
ZADD myrank 10 apple 20 banana 30 grape
ZRANGE myrank 0 1 # "apple", "banana"
ZRANK myrank banana # 1
명령어 | 설명 | 예시 |
---|---|---|
ZADD |
score와 함께 값 추가 | ZADD myrank 10 apple 20 banana |
ZRANGE |
score 기준 오름차순 조회 | ZRANGE myrank 0 1 |
ZREVRANGE |
내림차순 조회 | ZREVRANGE myrank 0 1 |
ZRANK |
값의 순위 반환 (오름차순) | ZRANK myrank apple |
ZREVRANK |
값의 순위 반환 (내림차순) | ZREVRANK myrank apple |
ZREM |
값 삭제 | ZREM myrank apple |
6. 🧮 Bitmaps
- 비트를 저장하는 자료형
- 공간 효율성이 뛰어남
- 특정 유저의 방문 여부 체크, 출석체크 등에 유용
SETBIT visit 2 1
SETBIT visit 3 1
GETBIT visit 2 # 1
BITCOUNT visit # 2
명령어 | 설명 | 예시 |
---|---|---|
SETBIT |
특정 위치 비트를 설정 | SETBIT visit 10 1 |
GETBIT |
특정 위치 비트 조회 | GETBIT visit 10 |
BITCOUNT |
비트가 1인 개수 카운트 | BITCOUNT visit |
BITOP |
여러 비트맵에 대해 연산 (AND, OR 등) | BITOP AND result today yesterday |
Bitmap 구조 예시 (방문 기록)
visit: [0, 1, 1, 0, 0]
→ index 1, 2번 유저가 방문
7. 🔢 HyperLogLog
- 유일한 데이터 개수(중복 제거 후 크기)를 추정
- 대규모 트래픽에서 메모리 효율적인 통계 분석
- 내부에 실제 데이터를 저장하지 않음
- 오차율 약 0.81%, 메모리 사용량 12KB 고정
PFADD visit Jay Peter Jane
PFCOUNT visit # 3
명령어 | 설명 | 예시 |
---|---|---|
PFADD |
데이터 추가 | PFADD visit Jay Peter Jane |
PFCOUNT |
유니크 개수 추정 반환 | PFCOUNT visit |
PFMERGE |
여러 HLL 합침 | PFMERGE result visit1 visit2 |
정리
자료형 | 특징 | 사용 예시 |
---|---|---|
Sorted Set | score 기반 정렬된 집합 | 리더보드, 랭킹 |
Bitmaps | 공간 효율적인 비트 저장 | 출석체크, 플래그 |
HyperLogLog | 유일 개수 추정 (메모리 고정) | 방문자 수, UV 통계 |
Redis는 단순 Key-Value를 넘어 다양한 실시간 데이터 처리에 강력한 성능을 제공합니다.
728x90
'DB' 카테고리의 다른 글
[Redis]리더 보드란? (0) | 2024.03.01 |
---|---|
[Redis] Spring Boot Redis 기본 설정 (0) | 2024.02.24 |
[Redis] Data Type (Strings, Lists, Sets, Hashes) (0) | 2024.02.23 |
[Redis] Redis란? (0) | 2024.02.20 |
MongoDB 구성 (0) | 2024.02.18 |