Redis 기본 사용법

Redis 설치

설치의 자세한 과정은 스킵하고 관련 글만 첨부하도록 하겠습니다.

MacOS에서 Redis 설치하기

Install Redis on macOSUse Homebrew to install and start Redis on macOShttps://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-mac-os/

Windows에서 Redis 설치하기

[Redis] 윈도우10 환경에서 레디스 설치하기

[REDIS] 📚 Window10 환경에 Redis 설치 & 설정

Redis에 접속

Redis에 접속할 수 있는 프로그램이 redis-cli이다.

redis-cli로 Redis에 명령을 내릴 수도 있다.

$ redis-cli # Redis에 접속

127.0.0.1:6379
> ping
PONG # 이렇게 출력되면 정상적으로 Redis가 실행되고 있다는 뜻

Redis 기본 명령어

데이터(Key, Value) 저장하기

# set [key 이름] [value]
$ set dalsu:name "dalsu shin" # 띄워쓰기 해서 저장하려면 쌍따옴표로 묶어주면 됨
$ set dalsu:hobby coding

데이터 조회하기 (Key로 Value 값 조회하기)

# get [key 이름]
$ get dalsu:name
"dalsu shin"

$ get dalsu:hobby
"coding"

$ get saj:name # 없는 데이터를 조회할 경우 (nil)이라고 출력됨
(nil)

저장된 모든 key 조회하기

$ keys *

1) "dalsu:name"
2) "dalsu:hobby"

데이터 삭제하기 (Key로 데이터 삭제하기)

# del [key 이름]
$ del dalsu:hobby
(integer) 1   # 삭제 성공 시 1, 존재하지 않으면 0

$ get dalsu:hobby # 삭제됐는 지 확인
(nil)         # 이미 삭제되었으므로 nil 출력

데이터 저장 시 만료시간(TTL) 정하기

레디스는 RDBMS와는 다르게 데이터 저장 시 만료시간을 설정할 수 있다. 즉, 영구적으로 데이터를 저장하지 않고 일정 시간이 되면 데이터가 삭제되도록 셋팅할 수 있다.

레디스의 특성상 메모리 공간이 한정 되어 있기 때문에 모든 데이터를 레디스에 저장할 수 없다. 따라서 만료시간(TTL)을 활용해 자주 사용하는 데이터만 레디스에 저장해놓고 쓰는 식으로 활용한다.

# set [key 이름] [value] ex [만료 시간(초)]
$ set dalsu:pet dog ex 30

만료시간(TTL) 확인하기

# ttl [key 이름]
# 만료 시간이 몇 초 남았는 지 반환
# 키가 없는 경우 -2를 반환
# 키는 존재하지만 만료 시간이 설정돼 있지 않은 경우에는 -1을 반환
$ ttl dalsu:pet 
(integer) 27   # 남은 시간(초), 매번 줄어듦

$ ttl dalsu:name
(integer) -1   # 만료시간 없음 (무제한)

$ ttl saj:name
(integer) -2   # 존재하지 않는 키

모든 데이터 삭제하기

$ flushall

﹖만약, 여러개의 키를 삭제하고 싶다면?

Redis에서 여러 개의 키를 한 번에 삭제하려면 del 명령어 뒤에 키를 여러 개 나열하면 됩니다.

$ del dalsu:name dalsu:hobby dalsu:pet

 

﹖만약, 특정 패턴의 키를 삭제하고 싶다면?

Redis에서 "dalsu:*"처럼 특정 패턴을 만족하는 여러 키를 삭제하고 싶을 때, 아래 두 가지 방법이 있습니다.

방법 1: keys 명령어 + xargs del

# "dalsu:"으로 시작하는 모든 키를 검색하고 한 번에 삭제
$ redis-cli keys "dalsu:*" | xargs redis-cli del

 

  • keys 명령어는 주어진 패턴에 맞는 모든 키를 한 번에 조회합니다.
  • 이후 xargs redis-cli del을 통해 조회된 키들을 한 번에 삭제합니다.

⚠️ 주의사항

  • keys 명령은 모든 키를 전수 스캔(full scan)하므로,
  • 운영 환경(실서비스 DB)에서는 성능 저하를 유발할 수 있습니다.
  • 따라서 테스트 환경, 데이터가 적을 때만 사용하는 것이 좋습니다.

방법 2: -scan + xargs del

# SCAN 명령어를 통해 "dalsu:"으로 시작하는 키들을 점진적으로 스캔하며 삭제
$ redis-cli --scan --pattern "dalsu:*" | xargs redis-cli del

 

  • SCAN은 내부적으로 커서를 사용해 키들을 조금씩 나눠서 조회합니다.
  • 시스템에 무리를 주지 않고 안전하게 점진적으로 처리할 수 있습니다.
  • -scan은 SCAN 명령을 간편하게 CLI에서 사용하도록 돕는 옵션입니다.

운영 환경에서 권장되는 방식입니다.

  • 특히 키 수가 많고, 실시간 서비스 중인 경우 SCAN 방식이 안정적입니다.

Key 네이밍 컨벤션

Redis의 Key 이름을 잘 짓는 건 굉장히 중요하다. 따라서 현업에서 자주 사용하는 Key 네이밍 컨벤션을 배워보자.

현업에서 자주 활용하는 네이밍 컨벤션

회사마다 여러가지 컨벤션이 존재하겠지만, 딱 한가지만 기억하자.

콜론(:)을 활용해 계층적으로 의미를 구분해서 사용

 

예시를 살펴보면 바로 이해가 될 것이다.

  • users:100:profile : 사용자들(users) 중에서 PK가 100인 사용자(user)의 프로필(profile)
  • products:123:details : 상품들(products) 중에서 PK가 123인 상품(product)의 세부사항(details)

이런 식으로 컨벤션을 정했을 때의 장점이 있다.

  1. 가독성 : 데이터의 의미와 용도를 쉽게 파악할 수 있다.
  2. 일관성 : 컨벤션을 따름으로써 코드의 일관성이 높아지고 유지보수가 쉬워진다.
  3. 검색 및 필터링 용이성 : 패턴 매칭을 사용해 특정 유형의 Key를 쉽게 찾을 수 있다 .
  4. 확장성 : 서로 다른 Key와 이름이 겹쳐 충돌할 일이 적어진다.

'Redis' 카테고리의 다른 글

Redis 캐싱 전략  (1) 2025.07.03
Redis 기본 개념  (4) 2025.07.03