본문 바로가기

데이터베이스(DA, AA, TA)/NoSQL

[Redis] 레디스 자습서

REmote DIctionary Server(Redis: 원격 사전 서버)는 이탈리아 해커 Salvatore Sanifilippo에 의해 작성된 key-value 기반 스토리지 시스템입니다.


Redis는 ANSI C, BSD 프로토콜을 준수하며, 네트워크를 지원하는 오픈소스 소프트웨어입니다. 또한 메모리 기반의 퍼시스턴트 로그 타입, Key-Value 데이터베이스 그리고 다양항 랭귀지 API를 공급합니다.


이는 종종 서버의 Data Structure라고 불리우기도합니다. 왜냐하면 Value는 string(String), hash(Map), list(list), set(sets), ordered set(sorted sets) 등의 타입이 될 수 있기 때문입니다.



Redis Introduction


Redis는 BSD에 기반한 무료 오픈소스로 높은 성능을 지닌 key-value 데이터베이스입니다.


Redis는 다른 key-value 캐싱 소프트웨어와 비교하여, 아래 세가지 특징을 갖습니다.

  1. Redis는 데이터 영속성을 지원합니다. 데이터는 디스크내 메모리에 보존이 되어질 수 있습니다. 그리고 재시작시, 다시 로드되어 집니다.
  2. Redis는 간단한 key-value 데이터타입을 지원할 뿐만아니라, list, set, zset, hash 등 좀더 다양한 data structure 스토리지 기능을 지원합니다.
  3. Redis는 데이터의 백업(master-slave mode)을 지원합니다.


Redis advantage

High Performance - Redis는 초당 110,000회 read가 가능하며, 81,000회 write가 가능합니다.

Rich data types - Redis는 Binary, Strings, Lists, Hashes, Sets등의 타입을 지원합니다.

Atom - Redis는 관련 명령어가 굉장히 많이 준비되어(100 종류 이상), Atomic한 처리가 가능합니다.

The rich featureset - Redis는 또한 Pub/Sub, notification, key expiration 등의 기능을 지원합니다.


Redis different from other key-value store?

Redis는 보다 복잡한 data structure를 가지고 있고, 그들에 대한 atomic한 작업이 가능합니다. 이는 다른 데이터베이스와 차별화된 기능입니다. Redis 데이터 타입은 프로그래머들에게  추상화없이 투명하게 basic한 data struct 형태로 제공됩니다.


Redis는 메모리에서 실행되고, 티스크에 저장되지 않습니다. 이는 다양한 데이터셋을 메모리에 빠르게 읽고 쓰는 것을 가능케합니다. 데이터의 용량은 하드웨어 메모리의 양보다 커서는 안됩니다. 인메모리 기반 데이터베이스의 또다른 장점은 복잡한 data structure들이 같은 디스크에 저장된다는 것입니다. 또한 메모리안에서 매우 간단하게 작업들이 이루어집니다.