카테고리 없음
🔍 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 |
반응형