no-sql DB로 기본적으로 key 와 value 쌍의 형태로 데이터를 메모리에 저장합니다. 메모리에 저장된 내용을 지속시키기 위해 파일로 싱크 하는 기능을 제공합니다.
보통 DB는 HDD나 SSD에 데이터를 저장합니다. 그렇지만 Redis는 메모리(RAM)에 저장해서 디스크 스캐닝이 없기 때문에 매우 빠른 장점이 존재합니다.
캐싱도 가능하다는 장점이 있어서, 실시간 채팅에 적함하고 세션 공유를 위해 세션 클러스터링에도 활용됩니다.
데이터 타입
String
set
sorted set
Hash
List
장점
특정 시점의 백업 및 복구에 유리합니다. 또한 redis-server 디스크에 저장하는 시점까지 disk i/o 가 일어나지 않으므로 성능을 극대화 할 수 있습니다.
AOF에 비해 더 빨리 메모리에 데이터를 올리고 redis-server를 시작할 수 있습니다.
단점
사고 발생시 백업이 일어나는 시점들 사이에 일어나는 변경사항이 손실될 수 있습니다.
백업시 fork() 로 자식 프로세스를 생성해서 백업 작업을 시행하는데, 이때 데이터가 크다면 순간적으로 많은 cpu 부하가 발생할 수 있다는 단점이 있습니다.