참고
Redis
NOTE
Redis는 모든 데이터를 메모리에 저장하는 인메모리 데이터베이스이며, 다양한 자료구조를 지원한다!
기본적으로 Key-Value 타입의 저장소이다.
NoSQL에는 다양한 데이터 모델이 있고 Redis는 Key-value중 하나이다.
다양한 방식으로 활용된다.
•
영속성을 지원하는 인메모리 데이터 저장소
•
읽기 성능 증대를 위한 서버 측 복제(Replica)를 지원한다.
◦
전체 데이터베이스의 초기 복사본을 받는 마스터/슬레이브 복제를 지원한다.
◦
마스터에서 쓰기가 수행되면 슬레이브 데이터 세트를 실시간으로 업데이트한다.
•
쓰기 성능 증대를 위한 클라이언트 측 샤딩(Sharding)을 지원한다.
•
싱글 스레드로 동작한다.
Redis의 다양성
NOTE
Reids는 단순히 캐시 이외에도 다양한 방식으로 사용할 수 있다.
Redis는 영속성을 지원하므로 DBMS 방식으로도 사용할 수 있다!
미들웨어로서 캐싱, 세션 저장소, 실시간 분석으로 사용할 수 있다!
•
미들웨어
◦
다른 두 애플리케이션 사이에서 역할을 수행하는 소프트웨어!
◦
Redis는 애플리케이션과 데이터베이스 사이에서 보통 동작한다.
▪
ex) 캐싱, 메세지 큐..
key-value 구조로 데이터를 빠르게 읽을 수 있음
Redis 영속성
NOTE
Reids는 지속성을 보장하기 위해 데이터를 Disk에 저장할 수 있다.
⇒ 서버가 내려가도 Disk에 저장된 데이터를 읽어 로딩한다!
RDB(Snapshotting) 방식
Redis의 데이터를 그대로 압축해서 저장한다.
복구 속도가 단일 파일이므로 매우 빠르다.
•
순간적으로 메모리에 있는 내용을 DISK에 모두 옮겨담는 방식
AOF(Append On File) 방식
aof라는 로그파일에 모두 저장한다!
복구할때는 로그파일을 읽어서 다시 복구한다(좀 걸린다.)
•
Redis의 모든 write/update 연산 자체를 모두 log 파일에 기록하는 형태
•
실시간 데이터를 저장하고 저장속도가 매우 빠르다.
Redis 설치
NOTE
Docker방식으로 Redis를 설치한다!
docker pull redis
docker run --name my-redis -d -p 6379:6379 redis
Bash
복사
Docker로 이미지를 불러오고 실행
# redis cli 에 접속한다.
docker exec -it my-redis /bin/sh
redis-cli
# 테스트용 명령어
set key1 banana
get key1
Bash
복사