Redis란?
**Redis(Remote Dictionary Server)**는 "key-value" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반 비관계형 데이터베이스 관리 시스템입니다.
- 특징: 인메모리 데이터베이스로, 데이터 처리 속도가 매우 빠릅니다.
- 한 줄 요약: Redis는 데이터 처리 속도가 엄청 빠른 NoSQL 데이터베이스입니다
Redis의 장점
- 고속 처리 성능: 모든 데이터를 메모리에 저장하므로 데이터 처리 속도가 매우 빠릅니다.
- 다양한 데이터 구조 지원: Strings, Lists, Hashes, Sets, Sorted Sets 등.
Redis 기본 명령어
Create 저장 명령어
기본 저장
set [key] [value]
set jjh:hobby soccer
만료 시간 설정 후 저장
set [key] [value] ex [만료 시간(초)]
set jjh:pet dog ex 30


Read 조회 명령어
단일 조회
get [key]
get jjh:hobby
키 값 전체 조회
keys *
만료 시간 조회
ttl [key]
ttl jjh:pet



Delete 삭제 명령어
모든 데이터 삭제 명령어
flushall
Redis 키 네이밍 컨벤션
Redis의 키 네이밍에는 **콜론(:)**을 활용하여 계층적 의미를 구분하는 것이 일반적입니다.
예시
- users:100:profile: 사용자(users) 중에서 PK가 100인 사용자의 프로필.
- products:123:details: 상품(products) 중에서 PK가 123인 상품의 세부사항(details).
장점
- 가독성: 데이터의 의미와 용도를 쉽게 파악 가능.
- 일관성: 동일한 컨벤션으로 코드의 일관성 유지.
- 검색 및 필터링 용이: 패턴 매칭을 사용해 특정 유형의 키를 쉽게 찾을 수 있음.
- 예: keys users:*로 모든 사용자 키 검색.
- 확장성: 네이밍 충돌을 줄이고, 데이터 확장이 용이.
캐시(Cache)란?
캐시란 원본 저장소보다 빠르게 가져올 수 있는 임시 데이터 저장소를 의미한다.
캐싱이란?
캐싱이란 캐시(임시 데이터 저장소)에 접근해서 데이터를 빠르게 가져오는 방식을 의미한다.
데이터를 캐싱할 때 사용하는 전략
* Cache Aside 전략
데이터 조회 시 주로 사용하는 전략이다.
아래 그림은 Cache Aside 전략을 설명한 것이다.
1. 캐시에 데이터가 있는 경우(Cache Hit)

2. 캐시에 데이터가 없는 경우(Cache Miss)

Cache Aside 전략은 캐시에서 데이터를 확인하고, 없다면 DB를 통해 조회해오는 방식이다.
* Write Around 전략
Write Around 전략은 데이터를 쓰기 작업(Create, Update, Delete) 시 캐시에 저장하지 않고, DB에만 저장하는 전략입니다.
이 전략은 Cache Aside처럼 자주 사용되며, 쓰기 작업 시 캐시를 건너뛰어 캐시 부하를 줄이는 데 유용합니다.
즉, 데이터를 쓸 때는 DB에만 저장하고, 읽기 작업이 발생하면 캐시에 데이터가 없을 경우(DB에서 가져와 캐시에 추가)만 캐시를 갱신하는 방식입니다.
아래 그림은 이 과정을 나타냅니다.
