
Redis란?
레디스(Redis)는 Remote Dictionary Server의 약자로서, “키-값” 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)이다.
- 위키백과 -
쉽게 말해서 Redis는 데이터 속도가 빠른 NoSQL 데이터 베이스이다. (NoSQL 데이터는 key-value 구조의 DB이다)
[Redis의 장점]
Redis의 장점은 많지만 그 중 1개를 뽑자면 Redis는 In-Memory에 모든 데이터를 저장할 수 있어 데이터 처리 성능이 굉장히 빠르다.
MySQL과 같은 DB는 디스크를 사용하지만 Redis는 RAM을 사용하기 때문에 데이터 처리 속도가 빠르다.
[Redis의 주요 사용 사례]
- 캐싱 (Caching)
- 세션 관리 (Session Management)
- 실시간 분석 및 통계 (Real-time Analystics)
- 메시지 큐 (Message Queue)
- 지리공간 인덱싱 (Geospatial Indexing)
- 속도 제한 (Rate Limiting)
- 실시간 채팅 및 메시징 (Real-time Chat And Messaging)
Redis 기본 명령어 익히기
[데이터(key, value) 저장하기]
# set [key 이름] [value]
$ set byeong:name "byoungcheon park"
$ set byeong:hobby game
[데이터 조회하기(Key로 Value 값 조회하기)]
# get [key 이름]
$ get byeong:name
$ get byeong:hobby
# 없는 데이터를 조회할 경우 nil 이라고 출력된다.
[저장된 모든 Key 조회하기]
$ keys *
[데이터 삭제하기 (key로 데이터 삭제하기)]
# del [key 이름]
$ del byeong:hobby
$ get byeong:hobby #삭제 됐는지 확인
[데이터 저장 시 만료시간(TTL) 정하기]
레디스는 RDBMS와는 다르게 데이터 저장 시 만료시간을 설정할 수 있다. 즉 영구적으로 데이터를 저장하지 않고 일정 시간이 되면 데이터가 삭제되도록 셋팅할 수 있다.
레디스의 특성상 메모리 공간이 한정 되어있기 때문에 모든 데이터를 레디스에 저장할 수 없다. 따라서 만료시간(TTL)을 활용해 자주 사용하는 데이터만 레디스에 저장해놓고 쓰는 식으로 활용한다.
# set [key 이름] [value] ex[만료시간(초)]
$ set byeong:pet dog ex 30
[만료시간(TTL) 확인하기]
# ttl [key dlfma]
# 만료 시간이 몇 초 남았는 지 반환
# 키가 없는 경우 -2를 반환
# 키는 존재하지만 만료 시간이 설정돼 있지 않은 경우에는 -1을 반환
$ ttl byeong:pet # 만료시간 얼마 남았는지 나옴
$ ttl byeong:name # -1 반환
$ ttl park:hobby # -2 반환
[모든 데이터 삭제하기]
$ flushall
Redis에서 Key 네이밍 컨벤션
회사마다 여러가지 컨벤션이 존재하겠지만 딱 한가지만 기억하자!!
콜론(:)을 활용해 계층적으로 의미를 구분해서 사용!
Ex)
- users:100:profile : 사용자들(users) 중에서 PK가 100인 사용자의 프로필(profile)
- products:123:details : 상품들(products) 중에서 PK가 123인 상품의 세부사항(details)
[컨벤션의 장점]
가독성, 일관성, 검색 및 필터링 용이성, 확장성
'Back-End > Redis' 카테고리의 다른 글
| JMeter를 활용하여 Redis 캐시 테스트 분석 (0) | 2025.02.05 |
|---|---|
| 트러블 슈팅 : Spring Data JPA 페이징 + Redis 캐시에서 직렬화/ 역직렬화 오류 발생 (0) | 2025.02.03 |
| Redis 캐싱 전략(CacheAside, Write Around)과 한계 (0) | 2025.01.29 |