Redis 기본 개념 및 특징
- Remote Dictionary Server (외부 딕셔너리 서버)
- 원격에 위치하고 프로세스로 존재
- In-Memory 기반 ⇒ 서버가 꺼지면 모든 데이터가 삭제 + 저장&조회 **속도가 빠름
- key-value 구조의 비정형 데이터를 저장하고 관리
- 싱글 스레드 ⇒ 한 번에 한 가지 명령만 실행 가능
- 비관계형 데이터 베이스 관리 시스템 ⇒ NoSQL (쿼리 연산 X)
- 메모리 기반(휘발성)이라 서버가 꺼지면 모든 데이터가 삭제되지만 RDB나 AOF 방식으로 메모리 데이터를 디스크에 저장하여 영속적인 데이터 보존 가능
- DB, 캐시 서버, 메시지 브로커(Pub/Sub)로 사용될 수 있음
Redis Pub/Sub(Publish/Subscribe)
- 특정한 주제(topic)에 대하여 해당 topic을 구독(Subscribe)한 모두에게 메시지를 발행(Publish)하는 통신 방법
- 메시지를 보내는 클라이언트가 메시지를 publish하면, subscribe 중인 클라이언트만 메시지를 수신
- 메시지는 따로 저장되지 않으며 메시지의 전송(수신 확인)은 보장되지 않음 ex) 유튜브 구독자 알림
Redis 캐시 사용 패턴
1. Look Aside Cache
- 클라이언트에서 요청이 오면 먼저 캐시 서버에서 확인하고 없으면 DB에 데이터 요청 ⇒ DB에 요청한 데이터인 경우 해당 데이터를 캐시에 저장
2. Write Back
- 캐시에 데이터를 쌓아 놨다가 한번에 DB에 Insert하는 패턴으로 매우 빠르지만 캐시 서버가 꺼져버릴 경우 데이터가 유실될 수 있는 위험성이 존재
댓글