Redis 주요 명령어 정리
KUKJIN LEE • 2일 전 작성
Redis Hash, List, Set, Sorted Set을 활용해 더욱 정교한 데이터 구조 관리가 가능합니다.
1. Hash 명령어 (HGET, HSET, HGETALL)
Hash는 하나의 키 아래에 필드-값(Field-Value)쌍을 여러 개 관리할 수 있는 자료구조입니다. 사용자 프로필 정보, 설정값, 메타데이터 저장 등에 자주 활용됩니다.
-
HSET: 특정 Key의 Hash에 Field-Value 쌍을 저장합니다.
-
HGET: Key에 해당하는 Hash에서 특정 Field값을 조회합니다.
-
HGETALL: 해당 Hash의 모든 Field-Value 쌍을 가져옵니다.
# 사용자 프로필 정보 저장
HSET user:1001 name "GG" city "Seoul"
# 특정 필드 조회
HGET user:1001 name # 결과: "GG"
# 모든 필드 조회
HGETALL user:1001 # 결과: name GG city Seoul
2. List 명령어 (LPUSH, RPUSH, LPOP, RPOP, LRANGE)
List는 순서가 있는 데이터 집합을 다룰 때 사용합니다. 대기열(Queue), 로그, 메시지 저장 등에 적합합니다.
-
LPUSH: List의 왼쪽에 하나 이상의 요소 삽입
-
RPUSH: List의 오른쪽에 하나 이상의 요소 삽입
-
LPOP: List의 왼쪽 요소 제거 및 반환
-
RPOP: List의 오른쪽 요소 제거 및 반환
-
LRANGE: List Range 조회
# 작업 큐 구성: 왼쪽 삽입, 오른쪽 추출 형태
LPUSH task:queue "task1" "task2" "task3"
LRANGE task:queue 0 -1 # 결과: task3, task2, task1
RPOP task:queue # 결과: task1 반환 후 리스트에서 제거
LRANGE task:queue 0 -1 # 결과: task3, task2
3. Set 명령어 (SADD, SMEMBERS, SPOP, SINTER)
Set은 중복 없는 유니크한 값들의 집합을 관리합니다. 태그 관리, 유저 권한 리스트, 중복 제거가 필요한 컬렉션 등에 활용됩니다.
-
SADD: 집합에 새로운 맴버 추가 (이미 존재할 경우 추가되지 않음)
-
SMEMBERS: 집합의 모든 맴버 조회
-
SPOP: 집합에서 랜덤하게 한 맴버를 제거하고 반환
-
SINTER: 여러 집합의 교집합 조회
# 유저 취미 태그 관리
SADD user:1001:hobbies "reading" "travel" "cooking"
SMEMBERS user:1001:hobbies # 결과: reading, travel, cooking
# 교집합 예제
SADD group:developers "Alice" "Bob" "Charlie"
SADD group:travelers "Bob" "Daisy"
SINTER group:developers group:travelers # 결과: Bob
4 Sorted Set 명령어 (ZADD, ZRANGE, ZREM)
Sorted Set은 점수(Score)를 기반으로 맴버를 정렬하는 자료구조입니다. 리더보드, 랭킹 시스템, 시간 기반 정렬 등 순위나 우선순위가 필요한 곳에 적합합니다.
-
ZADD: 맴버를 점수와 함께 삽입
-
ZRANGE: 순위 범위로 맴버 조회
-
ZREM: 특정 맴버를 정렬된 집합에서 제거
# 게임 랭킹
ZADD game:leaderboard 100 "Alice" 200 "Bob" 150 "Charlie"
ZRANGE game:leaderboard 0 -1 WITHSCORES
# 결과: Alice 100, Charlie 150, Bob 200 (점수 낮은 순 정렬)
# 멤버 제거
ZREM game:leaderboard "Charlie"
ZRANGE game:leaderboard 0 -1 WITHSCORES
# 결과: Alice 100, Bob 200
Redis의 다양한 자료구조 명령어를 숙지하면 단순 캐시 그 이상으로 활용할 수 있습니다. Hash
로 구조화된 데이터 관리, List
를 통한 Queue 구현, Set
으로 유니크 한 값 관리, Sorted Set
으로 랭킹 시스템 구축까지 웹 서비스에서 발생하는 여러 패턴을 Redis를 활용해 해결할 수 있습니다.