KAKAO.GG
Redis

Redis 주요 명령어 정리

65870717953200389e7820de
2025. 1. 1.
조회 292
#Redis Sorted Set 명령어, Redis Set 명령어, Redis List 명령어, Redis Hash 명령어

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를 활용해 해결할 수 있습니다.

Redis 주요 명령어 정리 - Tech Data - KAKAO.GG