About Redis
Redis의 정의

an open-source in-memory storage, used as a distributed, in-memory key–value database, cache and message broker, with optional durability.
Redis로 할 수 있는 것
- 아주 빠른 데이터 저장소로 활용
- 분산된 서버들간의 커뮤니케이션(동기화, 작업 분할 등)
- 내장된 자료구조를 활용한 기능 구현
- ex) Session store, Cache, Limit Rater, Job Queue
Key-value 구조의 장단점
장점
- 단순성에서 오는 쉬운 구현과 사용성
- Hash를 이용해 값을 바로 읽으므로 속도가 빠름
- 분산 환경에서의 수평적 확장성
단점
- Key를 통해서만 값을 읽을 수 있음
- 범위 검색 등의 복잡한 질의가 불가능
Key-value 스토어는 단순한 구조의 데이터로 높은 성능과 확장성이 필요할 때 사용
Redis의 특성
- 다양한 자료구조를 지원(String, Hash, Set, List 등)
- External Heap
- Application이 장애가 나도 Redis의 데이터는 보존(단기)
- Application이 여러 머신에서 돌아도 같은 데이터를 접근 가능
- DBMS
- Redis의 영속화 수단을 이용해 DBMS처럼 이용할 수 있다.
- 일반 RDB 수준의 안정성을 얻기 위해선 속도를 희생해야 하기에 DBMS의 용도로만은 사용되지 않는다.