[Redis] 소개
정리
Redis 란
- Remote Dictionary Server의 약자
- 인 메모리 기반의 Key/Value Store
특징
- NoSQL & Cache 솔류션
- Single Thread Model
- 다양한 언어에서 구현 가능
- 다양한 자료구조 지원(String, list, hash, set, sorted set, member )
메모리 기반이므로 데이터는 휘발성, 하지만 레디스는 disk에 저장 가능
- memcached는 메모리에만 저장. 서버 내려갈 경우 데이터 유실 O
- 레디스는 서버 내려간 후 restart 되더라도, disk에 저장해놓은 데이터를 다시 읽어서 메모리에 로딩. 데이터 유실 X
Replication
- Master / Slave
- master node에 write된 내용을 복제해서 slave node에 복제
- 1개의 Master node는 n개의 Slave node를 가질 수 있다.
- 각 Slave node도 그에 대한 Slave node를 또 가질 수 있다.
- Master와 Slave 간의 복제는 Non-Blocking 상태로 이루어짐
- 동시접속자수나 처리 속도 늘릴 수 있음
Sharding
- 데이터를 일정 구역별로 나눠서 여러개의 redis 서버에 나눠서 저장하는 것
- ex) redis 서버별로 저장하는 key 대역폭을 정해놓은 후, 나눠서 저장
참고