카테고리 없음

🔍 Redis의 주요 자료구조 6가지

idea9329 2025. 4. 17. 22:06
반응형

 

1. String (문자열)

  • 가장 기본적인 자료형. 텍스트, 숫자 모두 가능.
  • 최대 512MB까지 저장 가능.
  • 숫자로 저장되면 INCR, DECR 같은 연산 가능.
SET name "Redis"
GET name
INCR count  # count 값을 1 증가

2. List (리스트)

  • Linked List 구조.
  • 순서가 있는 값의 집합.
  • Stack, Queue처럼 사용 가능.
LPUSH mylist "a" "b" "c"  # 왼쪽부터 추가됨: c, b, a
RPUSH mylist "d"          # 오른쪽에 추가됨
LRANGE mylist 0 -1        # 전체 리스트 조회
LPOP mylist               # 왼쪽에서 하나 꺼냄

3. Set (집합)

  • 중복 없는 데이터 저장.
  • 교집합, 합집합, 차집합 같은 수학 연산 가능.
SADD myset "a" "b" "c"
SADD myset "c"  # 이미 있으므로 무시됨
SMEMBERS myset
SISMEMBER myset "a"

4. Hash (해시)

  • 하나의 키 안에 여러 개의 필드를 저장.
  • 유저 정보 저장에 유용.
HSET user:1001 name "Alice" age "30"
HGET user:1001 name
HGETALL user:1001

5. Sorted Set (정렬된 집합)

  • Set과 비슷하지만, score 기준으로 정렬됨.
  • 순위 저장에 많이 사용됨.
ZADD leaderboard 100 "Alice"
ZADD leaderboard 200 "Bob"
ZRANGE leaderboard 0 -1 WITHSCORES  # 오름차순 정렬
ZREVRANGE leaderboard 0 -1 WITHSCORES  # 내림차순

6. Stream (스트림)

  • 최신 Redis에서 제공하는 로그/이벤트용 데이터 구조.
  • Kafka 같은 이벤트 로그 시스템처럼 사용 가능.
XADD mystream * user "alice" action "login"
XRANGE mystream - +

🧠 언제 어떤 자료형을 써야 할까?

사용 목적추천 자료형

로그인 기록 저장 List 또는 Stream
유저 프로필 Hash
태그 모음, 중복 제거 Set
게임 랭킹 Sorted Set
방문자 수 카운트 String (숫자)
실시간 채팅 Stream



반응형