DEV Community

NeNoVen
NeNoVen

Posted on

Redis 빠른이유

이유

  1. in memory 데이터베이스 : Ram 을 사용한다. disk 가 아니다. disk 보다 약 1000배 정도 빠르다.
  2. disk DB 와 비교해 코드상에서 구현하기 쉽다.
  3. 싱글스레드 사용한다. 멀티스레드의 컨텍스트 교환 비용을 지불하지않아도 된다.
  4. IO 멀티플렉싱 으로 단일스레드의 단점을 극복 a. 요청이 스레드의 완료시점까지 기다리지않아도됨. b. 단일 스레드가 여러개의 소케 연결을 동시에 기다릴수있음. c. 수천개의 연결이 있는 경우 일반적으로 select 나 폴링을 통해서 요청을 처리할경우에는 성능이 좋지않음.

단점

  1. data set 이 disk i/o 보다 작다
  2. 최신 고스펙 하드웨어 환경에서 (멀티코어) 모든 코어를 활용 못한다. a. 보완 : 단일서버에 여러개의 redis 인스턴스를 사용해 보완한다.
  3. 하위 수준의 여러가지 데이터 구조를 활용가능

Persistence 지속성 을위한 옵션

  1. AOF append only file 로그퍼일처럼 생성에 관한 내용을 기록
  2. Rdb 관계형 디비에 일정주기로 스냅샵
  3. AOF Rdb 를 적절하게사용
  4. No persistence 짧은 주기 캐시로 그냥 사용, 지속성을 사용하지않음

Top comments (0)