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] 📚 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)
이런 식으로 컨벤션을 정했을 때의 장점이 있다.
- 가독성 : 데이터의 의미와 용도를 쉽게 파악할 수 있다.
- 일관성 : 컨벤션을 따름으로써 코드의 일관성이 높아지고 유지보수가 쉬워진다.
- 검색 및 필터링 용이성 : 패턴 매칭을 사용해 특정 유형의 Key를 쉽게 찾을 수 있다 .
- 확장성 : 서로 다른 Key와 이름이 겹쳐 충돌할 일이 적어진다.
'Redis' 카테고리의 다른 글
Redis 캐싱 전략 (1) | 2025.07.03 |
---|---|
Redis 기본 개념 (4) | 2025.07.03 |