[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 대역폭을 정해놓은 후, 나눠서 저장

참고