오픈소스, 인메모리 데이터 저장소
사용하기 쉽고, 고성능 자랑
다양한 용도에 효과적으로 사용
다양한 데이터 구조
List, Set, 정렬된 Set, Hash, Bit 배열, hyperloglogs 지원
Snapshots
특정시점에 데이터를 디스크에 저장하여 파일 보관 가능
복제
Master - Salves 구조로, 여러개의 복제본 생성 가능
따라서, 데이터베이스 읽기를 확장할 수 있기 때문에 높은 가용성 클러스터 제공
트랜젝션
데이터베이스 상태를 변경시키는 작업 단위 의미
원자성, 일관성, 독립성, 지속성 특징
Pub / Sub messaging
Publish(발행)과 Sub(구독) 방식의 메시지 패턴 검색 가능
높은 성능 요구하는 채팅, 실시간 스트리밍, SNS 피드, 서버상호통신 사용 가능
루아 스크립트 지원
위치 기반 데이터 타입 지원
실시간 위치기반 데이터 지원.
명료, 단순
멀티스레드 지원 -> 멀티프로세스코어 사용 가능
=> 스케일업 통해서 더욱 많은 작업처리
1ms 이하의 응답시간 제공
데이터를 메모리에 저장 -> 디스크 기반의 데이터베이스보다 빠르게 읽을 수 있음
개발의 용이성
데이터 파티셔닝
데이터를 여러 노드에 분산하여 저장 가능
수요가 증가할 때, 더 많은 데이터를 효과적으로 처리하기 위해 스케일아웃 가능
다양한 프로그래밍 언어 지원
Redis가 가진 특징을 보면, 모든 상황에서 Redis를 써야할 것 같지만,
싱글쓰레드이기 때문에, 1번에 1개의 명령어만 실행 가능.
RDB작업 (특정 간격마다 모든 데이터를 디스크에 저장)이 매우 오래 걸림.