이유
- in memory 데이터베이스 : Ram 을 사용한다. disk 가 아니다. disk 보다 약 1000배 정도 빠르다.
- disk DB 와 비교해 코드상에서 구현하기 쉽다.
- 싱글스레드 사용한다. 멀티스레드의 컨텍스트 교환 비용을 지불하지않아도 된다.
- IO 멀티플렉싱 으로 단일스레드의 단점을 극복 a. 요청이 스레드의 완료시점까지 기다리지않아도됨. b. 단일 스레드가 여러개의 소케 연결을 동시에 기다릴수있음. c. 수천개의 연결이 있는 경우 일반적으로 select 나 폴링을 통해서 요청을 처리할경우에는 성능이 좋지않음.
단점
- data set 이 disk i/o 보다 작다
- 최신 고스펙 하드웨어 환경에서 (멀티코어) 모든 코어를 활용 못한다. a. 보완 : 단일서버에 여러개의 redis 인스턴스를 사용해 보완한다.
- 하위 수준의 여러가지 데이터 구조를 활용가능
Persistence 지속성 을위한 옵션
- AOF append only file 로그퍼일처럼 생성에 관한 내용을 기록
- Rdb 관계형 디비에 일정주기로 스냅샵
- AOF Rdb 를 적절하게사용
- No persistence 짧은 주기 캐시로 그냥 사용, 지속성을 사용하지않음
Top comments (0)