Redis 란?
- Redis(REmote Dictionary Server) 는 비 관계형 데이터베이스이다.
- 메모리 기반의 '키-값' 구조의 데이터 관리 시스템
- 모든 데이터들을 메모리에 저장하고 조회하기에 빠르다.
- 레디스에서 지원하는 데이터 형식은 크게 5가지이다. : String, Set, Sorted Set, Hash, List
- 레디스의 데이터는 메모리와 디스크에 저장이 되기 떄문에 불의의 경우에도 데이터 복구가 가능하다.
![](https://blog.kakaocdn.net/dn/dR6fBu/btrBi7RzKXm/qfJZz57IWcPJZuqYEsA1x0/img.png)
Redis 구조
![](https://blog.kakaocdn.net/dn/Y9dVW/btrBi8v82Ek/qMgk4wzQoApvwU0fAxKxRK/img.png)
Redis 특징
- 영속성을 지원하는 인메모리 데이터 저장
* 영속성은 프로그램 실행이 종료되어도 데이터가 사라지지 않는 특성을 이야기한다.
- 읽기 성능 증대를 위한 서버 측 복제를 지원한다.
: 레디스가 실행중인 서버가 충돌하는 경우 장애 조치 처리와 함께 더 높은 읽기 성능을 지원하기 위해
- 쓰기 성능 증대를 위한 클라이언트 측 샤딩(Sharding)을 지원한다.
* 샤딩은 같은 테이블의 스키마를 가진 데이터를 다수의 데이터베이스에 분산하여 저장하는 방법
Redis 장점
- 리스트, 배열과 같은 데이터를 처리하는데 유용하다.
: 다양한 데이터 형식을 지원하기 때문에, 다양한 방식으로 데이터를 활용할 수 있다.
- 리스트형 데이터 입력과 삭제가 빠르다.
- 메모리를 활용하면서 영속적인 데이터 보존
: 명령어로 명시적 삭제, expires를 설정하지 않으면 데이터가 삭제되지 않는다.
스냅샷(기억장치) 기능을 제공하여 메모리의 내용을 *.rdb 파일로 저장하여 해당 시점으로 복구할 수 있다.
- Redis Server는 1개의 싱글 쓰레드로 수행되며, 서버 하나에 여러 개의 서버를 띄우는 것이 가능
: Master-Slave 형식으로 구성이 가능(데이터의 분실 위험을 없애주는 방식)
Redis 단점
Key-Value 형태로 저장된 데이터를 레디스 자체내에서 처리하는 것이 어렵다.
Redis 가 주목받는 이유
- 데이터 저장소로 입력/ 출력이 가장 빠른 메모리를 채택
- 단순한 구조의 데이터 모델인 Key-value 방식을 통해 빠른 속도
- 캐시 및 데이터 스토어에 유리
- 다양한 API 지원
Redis Pub/ Sub
Publish/ Subscribe 는 수신자(클라이언트) 모두에게 메세지를 전송한다. (주로 채팅 기능이나 푸시 알림등에서 사용)
![](https://blog.kakaocdn.net/dn/bHe8Oy/btrBnMLJASi/JO430MYkzSoQ95M2lHNeKK/img.png)
- 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 |
---|