Redis란?

 

Redis 란?


- Redis(REmote Dictionary Server) 는 비 관계형 데이터베이스이다.

- 메모리 기반의 '키-값' 구조의 데이터 관리 시스템

- 모든 데이터들을 메모리에 저장하고 조회하기에 빠르다.

- 레디스에서 지원하는 데이터 형식은 크게 5가지이다. : String, Set, Sorted Set, Hash, List

- 레디스의 데이터는 메모리와 디스크에 저장이 되기 떄문에 불의의 경우에도 데이터 복구가 가능하다.

 

해커였던 개발자분이 mysql이 답답해서 Redis 를 만들어버렸다고...

 

Redis 구조


 

Redis 특징


- 영속성을 지원하는 인메모리 데이터 저장
  * 영속성은 프로그램 실행이 종료되어도 데이터가 사라지지 않는 특성을 이야기한다.

 

- 읽기 성능 증대를 위한 서버 측 복제를 지원한다.
  : 레디스가 실행중인 서버가 충돌하는 경우 장애 조치 처리와 함께 더 높은 읽기 성능을 지원하기 위해

 

- 쓰기 성능 증대를 위한 클라이언트 측 샤딩(Sharding)을 지원한다.

  * 샤딩은 같은 테이블의 스키마를 가진 데이터를 다수의 데이터베이스에 분산하여 저장하는 방법

 

 

Redis 장점


- 리스트, 배열과 같은 데이터를 처리하는데 유용하다.

  : 다양한 데이터 형식을 지원하기 때문에, 다양한 방식으로 데이터를 활용할 수 있다.

 

- 리스트형 데이터 입력과 삭제가 빠르다.

 

- 메모리를 활용하면서 영속적인 데이터 보존

  : 명령어로 명시적 삭제, expires를 설정하지 않으면 데이터가 삭제되지 않는다.

    스냅샷(기억장치) 기능을 제공하여 메모리의 내용을 *.rdb 파일로 저장하여 해당 시점으로 복구할 수 있다.

 

- Redis Server는 1개의 싱글 쓰레드로 수행되며, 서버 하나에 여러 개의 서버를 띄우는 것이 가능

  : Master-Slave 형식으로 구성이 가능(데이터의 분실 위험을 없애주는 방식)

 

 

Redis 단점


Key-Value 형태로 저장된 데이터를 레디스 자체내에서 처리하는 것이 어렵다.

 

 

Redis 가 주목받는 이유


- 데이터 저장소로 입력/ 출력이 가장 빠른 메모리를 채택

- 단순한 구조의 데이터 모델인 Key-value 방식을 통해 빠른 속도

- 캐시 및 데이터 스토어에 유리

- 다양한 API 지원

 

 

Redis Pub/ Sub


Publish/ Subscribe 는 수신자(클라이언트) 모두에게 메세지를 전송한다. (주로 채팅 기능이나 푸시 알림등에서 사용)

 

- Redis Pub/ Sub 는 메세지 지속성이 없다. 즉, 메세지를 전송한 후 해당 메세지는 삭제되고 Redis 어디에도 저장되지 않는다.

- 수신자(클라이언트)가 메세지를 받는 것을 보장하지 않는다. 그래서 이 기능이 필요하다면 추가적인 구현이 필요하다.

 

 

RSMQ


- 배포하기 쉬운 Redis 위에 구축된 오픈소스 단순 메세지 대기열이다.(전용 큐 서버 필요없음)

- 가볍고 빠르며 한 명의 수신자에게만 메세지를 전달할 수 있다.

 

알아두면 좋음!

- 대기열을 만든 후에는 해당 대기열로 메시지를 보낼 수 있다.
- 메시지는 지연없이 지정되지 않는 한 FIFO (first in first out) 방식으로 처리된다.
- 모든 메시지에는 메시지 id를 삭제하는 데 사용할 수 있는 고유 한 메시지가 있다.
- sendMessage방법은 id보낸 메시지에 대해 반환된다.
- receiveMessage방법은 id메시지와 일부 통계와 함께 반환된다.
- 메시지를 삭제하지 않으면 visibility timeout에 도달 한 후 다시 수신 할 수 있다.
 

 

- Redis Pub/ Sub

https://velog.io/@wooook/REDIS-PUBSUB-%EC%9D%B4%EB%9E%80

 

[REDIS] PUB/SUB 이란?

이번에 pub/sub 기능 추가가 필요하게 되었고, 마침 사용하던 redis가 pub/sub기능을 지원함에 따라 사용하게 되었습니다.기능을 추가하면서 공부했던걸 정리하려고합니다.pub/sub이란 채널을 구독한 s

velog.io

 

 

- RSMQ

https://www.npmjs.com/package/rsmq

 

rsmq

A really simple message queue based on Redis. Latest version: 0.12.4, last published: a year ago. Start using rsmq in your project by running `npm i rsmq`. There are 81 other projects in the npm registry using rsmq.

www.npmjs.com

 

반응형

'🧾 SQL' 카테고리의 다른 글

OUTER JOIN (외부 조인) - oracle, mysql  (0) 2022.01.05