Redis 명령어 정리

POKUDING·2024년 11월 25일

DB

목록 보기
1/3
post-thumbnail

Redis는 빠른 성능다양한 데이터 구조를 제공하는 인메모리 데이터베이스입니다. 이 글에서는 Redis의 주요 명령어를 데이터 구조별로 정리하고, 실제 활용 예를 통해 각 명령어의 사용법을 알아보겠습니다.


1. String

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

여러 Key-Value 동시 처리

# 멀티 SET, 멀티 GET
MSET user:name alex user:email alex@example.com
MGET user:name user:email

2. List

List는 Linked List 구조로, 스택의 역할을 모두 수행합니다.

# 데이터 추가 (왼쪽/오른쪽)
LPUSH user:list alex
RPUSH user:list brad
LPUSH user:list chad

# 데이터 제거
LPOP user:list  # 왼쪽 제거
RPOP user:list  # 오른쪽 제거

List 관련 명령어

# 길이 확인
LLEN user:list

# 특정 범위 조회
LRANGE user:list 0 3
LRANGE user:list 0 -1  # 전체 조회

활용 예:

  • Worker Queue: 작업 분배
  • 타임라인 구현: 소셜미디어에서 사용

3. Set

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  # 합집합

활용 예:

  • 중복 없는 방문자 수 추적
  • JWT 인증토큰 검증

4. Hash

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

활용 예:

  • 장바구니: 제품과 수량 저장
  • 세션 정보: 사용자 상태 관리

5. Sorted Set

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

활용 예:

  • 리더보드: 게임 순위
  • Rate Limiter: API 요청 제한

6. Key 관리 명령어

Redis에서 Key를 관리하는 명령어는 다음과 같습니다.

# Key 삭제
DEL somekey

# Key 만료시간 설정
EXPIRE expirekey 5

# Key 만료 시간 확인 (UNIX Timestamp)
EXPIRETIME expirekey

# 모든 Key 조회
KEYS *

# 데이터베이스 전체 삭제
FLUSHDB

Redis 명령어를 정리하면서 데이터 구조별 특성과 활용법을 함께 살펴보았습니다. 실제 프로젝트에 Redis를 도입할 때, 적절한 데이터 구조와 명령어를 사용해 효율적인 데이터 관리를 구현해보세요!

profile
세상을 바꾸는 꿈을 꾸는 개발자

0개의 댓글