728x90
Redis란?
- In-Memory DB
- Remote Dictionary Server
- Storage : 데이터 저장소(데이터 관점)
- Database : 전통적인 DBMS의 역할을 수행(영속성 관점)
- 데이터를 저장하고 유실되지 않게 한다
- Redis는 기본적으로 영속성을 제공하지 않지만 추가적인 백업 방식으로 제공된다.
- Middleware : 어플리케이션이 이용할 수 있는 유용한 기증을 제공하는 소프트웨어
활용
- Session Store
- Cache
- Limit Rater
- Job Queue
할수 있는것
- 아주 빠른 데이터 저장소로 활용
- 분산된 서버들간의 커뮤니케이션(동기화, 작업 분할 등)
- 내장된 자료구조를 활용한 기능 구현
In-Memory DB
DB, Database, DBMS?
- 데이터를 읽고 쓸 수 있는 기능을 제공하는 소프트웨어
- 어플리케이션이 데이터 저장을 간단히 처리할 수 있도록 해줌
- 관심사의 분리, 계층화
In-Memory DB란?
- 데이터를 디스크에 저장하지 않음
- 휘발성인 RAM에 저장.
- 빠른 속도
Memory와 Disk의 속도 차이
READ | WRITE | 비교 | |
---|---|---|---|
HDD | 130 MB/s | 120 MB/s | |
SSD | 500 MB/s | 250 MB/s | HDD보다 3~4배 빠른 |
RAM | 20,000 MB/s | 20,000 MB/s | SSD보다 40배 빠름 |
빠른 속도와 휘발성의 절충
RDBMS -> 영속성 데이터
Redis -> 단기 사용 데이터 (ex. Session DATA, Cache DATA)
- 용도에 맞게 DB와 Redis를 사용
- 혼합해서 사용(Cache)
- Redis의 영속성 확보(백업 등)
Key-Value Store로서 Redis
- 데이터 저장소의 구조
- 프로그램 언어에서의 데이터 구조(Array, List, Map, ...)
- DB의 데이터 모델 관점에서의 구조
- (네트워크 모델, 계층형 모델(Tree), 관계형 모델, ...)
Key-Value Store 란?
- 특정 값을 Key로 해서 그와 연관된 데이터를 value로 저장(Map과 같음)
- 가장 단순한 데이터 저장 방식
- 단순한 만큼 빠르고 성능이 좋음
장점
- 단순성에서 오는 쉬운 구현과 사용성
- Hash를 이용해 값을 바로 읽으므로 속도가 빠름(추가 연산이 필요 없음)
- 분산 환경에서의 수평적 확장성
단점
- Key를 통해서만 값을 읽을 수 있음
- 범위 검색 등의 복잡한 질의가 불가능
Key-Value Store 활용
- 언어의 자료구조(Java의 HashMap 등)
- NoSQL DB( Redis, Riak, AWS DynamoDB)
- 단순한 구조의 데이터로 높은 성능과 확장성이 필요할 때 사용
728x90
'DB' 카테고리의 다른 글
[Redis] Data Type (Sorted Sets, Bitmaps, HyperLogLog) (0) | 2024.02.23 |
---|---|
[Redis] Data Type (Strings, Lists, Sets, Hashes) (0) | 2024.02.23 |
MongoDB 구성 (0) | 2024.02.18 |
SQL VS NoSQL (MongoDB 공부 전 ) (0) | 2024.02.18 |
Mysql Procedure (0) | 2024.02.03 |