DB

[Redis] Data Type (Sorted Sets, Bitmaps, HyperLogLog)

Raconer 2024. 2. 23. 00:44
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