Redis는 키와 값을 기반으로 하는 메모리 데이터 스토어이다.
키와 값을 기반으로 하기 때문에 쿼리를 처리할 필요없이 바로 가져올 수 있고, 메모리에 담기 때문에 속도가 매우 빠르다.
redis는 싱글 스프레드이다. 한번에 하나의 명령어만 처리 가능하고, 데이터가 나눠져 여러개의 패킷이 들어온다면, 그 패킷이 전부 합쳐져 하나의 명령어가 될때까지 실행되지 않는다.
이에 따라 요청이 타임 아웃이 나는 경우들이 있다. 키를 전부 호출한다던지 이런 경우 타임 아웃이 발생할 수 있으니, 이에 따른 알맞은 로직을 구성하도록 하는것이 좋겠다.
redis 구성 중에 요청 분산과 데이터 이중화를 위해 db_replication처럼 master/slave 구조를 가질 수 있다.
이에 따라 redis cluster 형태가 나타날 수 있는데, 하나의 클러스터가 여러개의 master를 가지고 있고, 그에 따라 slave를 가지고 있는 구조를 사용하는데, 이때 하나의 master가 죽으면 그 밑에 존재하던 slave 가 승격하여 master의 역활을 대신하는 것이다.