Remote Dictionary Server : key-value 구조로 비정형 데이터를 저장, 관리하는 오픈소스기반의 비관계형(NoSQL) DBMS

개요

일반적으로 DB를 조회할 때 i/o가 발생한다.

in-memory 방식을 활용하여 데이터를 임시로 저장한다면? i/o보다 빠르게동작한다

하지만 모든 데이터를 저장할 수는 없기 때문에 자주 사용하는 데이터를 저장해 두고 없을때 다시 DB를 조회하는 방식으로 전체적인 서비스의 속도를 향상시킨다.

또한 쿼리가 길고 복잡한 경우 결과를 캐싱해 두고 쿼리결과가 변경되는 이벤트가 발생시 새로 저장한다면 서비스 속도가 향상될 것이다.

Redis는 이런 캐시서버역할을 한다.

특징

1) key-value

adsfaf.png

NoSQL이며 다양한 데이터구조(String, Set, List, hash..)가 가능하다. 개발의 편의성이 좋아지며 난이도가 낮아진다.

예를들어 정렬을 할때 일반 DB에서 저장, 정렬, 읽어오는 과정보다 inmemory이며 sorted-set인 자료구조를 사용해 더 빠르고 간단히 데이터를 정렬가능합니다.

2) In-memory 기반

In-memory 기반으로 데이터 처리및 저장을 제공하여 속도가 빠르지만 서버가 꺼지면 모든 데이터가 사라진다. 서버의 shutdown/restart를 대비하고 영속성을 보장하기 위해 디스크 저장기능(RDB, AOF)를 가진다.

RDB, AOF?

3) 데이터의 삭제 방식

지정된 만료시간이 지나거나 메모리가 꽉 찼을 때 LRU알고리즘에 의해 데이터가 사라집니다.

4) 서버기능

읽기성능 증대를 위한 scaleout을 하는 application side sharding과 쓰기성능 증대를 위한 Master/slave replication을 지원한다.