Search
Duplicate
📒

[고성능 서비스를 위한 Redis] 01. Redis란 무엇인가?

상태
완료
수업
고성능 서비스를 위한 Redis
주제
Redis
4 more properties
참고

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
복사