- Redis 시작해보기2023년 06월 01일
- starryeye
- 작성자
- 2023.06.01.:30
Redis 는 가장 대표적인 NoSQL 의 Key-Value 모델을 따르는 저장소이다.
-> Hash Map 이라 생각해보자..
간단하게 알아보는 대표적 특징
1. In-memory 저장소로 아주 빠른 접근 속도를 제공한다.
2. 세션 관리나 캐시 등의 목적으로 자주 사용된다.
3. Key-Value Store 이므로, 분산 환경을 제공하여 데이터 관점의 Shard(Cluster, Scale-Out) 가 가능하다.
(물론, HA를 위한 Replica, Sentinel 개념도 존재)
4. Key 를 통해서만 값을 읽을 수 있다. (Value 단독 조회 불가능)
5. 범위 조회 등의 복잡한 질의 불가능
6. In-Memory 데이터를 주기적으로 디스크에 스냅샷으로 저장(RDB)하거나,
모든 변경을 로그 파일에 기록(AOF)하여 데이터 손실을 어느정도 방지할 수 있다.
정의
Remote Dictionary Server 의 약자가 Redis 이다.
-> 원격지에 Dictionary 방식으로 저장하는 서버
성격
1. Storage : 데이터 관점의 외부 저장소이다.
2. Database : NoSQL Database 이다, 데이터를 다루는 인터페이스를 제공하므로 DBMS 느낌이다.
3. Middleware : Application 이 이용할 수 있는 유용한 기능을 제공한다.
-> ex. Sorted Set Data Type 을 이용하면 빠른 조회가 가능한 랭킹 서비스를 쉽게 개발할 수 있다.
Redis 로 가능한 것들..
1. 메모리 저장소, 아주 빠른 데이터 저장소 (캐싱, 세션 저장소 등)
2. 분산된 서버들간의 커뮤니케이션 (kafka 에서 제공하는 pub/sub, stream 기능도 존재)
3. 내장된 자료구조를 활용하여 기능 구현 (Java Collection 이 외부 저장소로 존재하는 느낌이다.)
4. Redisson Client 를 사용한, 분산 락 (Redis 가 제공하는 Lua 스크립팅을 이용하여 락의 획득과 해제를 원자적으로 처리 가능)
참고>
Lua 스크립팅
Redis에서 Lua 스크립팅은 서버 측 로직을 정의하고 실행할 수 있게 해주는 기능이다.
Lua 스크립트는 Redis 명령들의 시퀀스를 포함하여 클라이언트가 서버에 전송하고,Redis 서버는 해당 스크립트를 "한 번에" 실행한다.
따라서 "원자적"으로 실행되므로,
스크립트가 실행되는 동안 다른 클라이언트의 요청이 스크립트의 실행을 방해할 수 없다.
'DataBase > NoSQL' 카테고리의 다른 글
Redis Data Type 2 (1) 2023.06.02 Redis Data Type 1 (0) 2023.06.02 MongoDB Sharded Cluster (0) 2023.06.01 MongoDB Replica Set (0) 2023.05.20 MongoDB 3가지 형태 (0) 2023.05.20 다음글이전글이전 글이 없습니다.댓글