Redis는 빠른 성능과 다양한 데이터 구조를 제공하는 인메모리 데이터베이스입니다. 이 글에서는 Redis의 주요 명령어를 데이터 구조별로 정리하고, 실제 활용 예를 통해 각 명령어의 사용법을 알아보겠습니다.
String은 가장 기본적인 데이터 구조로, Key-Value 형태로 데이터를 저장합니다.
# 데이터 저장 및 조회
SET user:email abc@example.com
GET user:email
# 정수 증감 연산
SET user:count 1
INCR user:count # ++
DECR user:count # --
GET user:count
# 멀티 SET, 멀티 GET
MSET user:name alex user:email alex@example.com
MGET user:name user:email
List는 Linked List 구조로, 스택과 큐의 역할을 모두 수행합니다.
# 데이터 추가 (왼쪽/오른쪽)
LPUSH user:list alex
RPUSH user:list brad
LPUSH user:list chad
# 데이터 제거
LPOP user:list # 왼쪽 제거
RPOP user:list # 오른쪽 제거
# 길이 확인
LLEN user:list
# 특정 범위 조회
LRANGE user:list 0 3
LRANGE user:list 0 -1 # 전체 조회
Set은 중복을 허용하지 않는 데이터 구조로, 집합 연산이 가능합니다.
# 데이터 추가 및 제거
SADD user:java alex brad chad
SREM user:java alex
# 데이터 확인
SISMEMBER user:java brad # 포함 여부 확인
SMEMBERS user:java # 모든 멤버 조회
SCARD user:java # 멤버 수 조회
# 교집합, 합집합
SADD user:python alex dave
SINTER user:java user:python # 교집합
SUNION user:java user:python # 합집합
Hash는 Field-Value 쌍으로 이루어진 데이터 구조입니다. 데이터를 Key-Value 형태로 묶어서 저장할 수 있습니다.
# 데이터 추가
HSET user:alex name alex age 25 major CSE
# 데이터 조회
HGET user:alex name
HGETALL user:alex # 전체 조회
# Field 목록 및 길이
HKEYS user:alex
HLEN user:alex
Sorted Set은 점수(Score)를 기반으로 정렬된 집합입니다.
# 데이터 추가 및 점수 수정
ZADD user:ranks 10 alex 9 brad 11 chad
ZINCRBY user:ranks 2 alex # 점수 증가
# 순위 조회
ZRANK user:ranks alex # 낮은 점수 순
ZREVRANK user:ranks alex # 높은 점수 순
# 범위 조회
ZRANGE user:ranks 0 2
ZREVRANGE user:ranks 0 2
Redis에서 Key를 관리하는 명령어는 다음과 같습니다.
# Key 삭제
DEL somekey
# Key 만료시간 설정
EXPIRE expirekey 5
# Key 만료 시간 확인 (UNIX Timestamp)
EXPIRETIME expirekey
# 모든 Key 조회
KEYS *
# 데이터베이스 전체 삭제
FLUSHDB
Redis 명령어를 정리하면서 데이터 구조별 특성과 활용법을 함께 살펴보았습니다. 실제 프로젝트에 Redis를 도입할 때, 적절한 데이터 구조와 명령어를 사용해 효율적인 데이터 관리를 구현해보세요!