Redis
Redis(REmote Dictionary Server)는 오픈 소스, 인 메모리 데이터 구조 스토어로서, 데이터베이스, 캐시, 메시지 브로커 등의 역할을 수행할 수 있다. 다양한 종류의 데이터 구조를 지원하며, 데이터 구조는 key-value 값이다.
따라서 Redis는 비정형 데이터를 저장하는 비관계형 데이터베이스 관리 시스템이다.
Redis의 주요 특징
1. In-Memory Data Store
Redis는 모든 데이터를 메모리에 저장하고 관리함으로써 빠른 성능을 제공한다.
하지만 영구적인 데이터 저장을 위해 디스크에 스냅샷(snapshot)을 저장하거나 AOF(Append Only File) 등의 방법으로 데이터 유실을 방지할 수 있다.
snapshot : 특정 지점을 설정하고 디스크에 백업
AOF : 명령(쿼리)들을 저장해두고, 서버사 셧다운되면 재실행해서 다시 만들어 놓는 것
2. 다양한 데이터 구조 지원
문자열, 리스트, 셋, 정렬된 셋, 해시 등의 다양한 데이터 구조(value)를 지원한다. 이를 통해 개발자는 원하는 형태의 데이터를 자유롭게 저장하고 관리할 수 있다.
String (text, binary data) - 512MB까지 저장 가능
List (양방향 연결리스트도 가능)
set (String 집합)
sorted set
Hash
3. Pub/Sub 기능
Pub/Sub 메시징 시스템을 지원하여, 여러 클라이언트가 메시지를 교환할 수 있는 기능을 제공한다. 이를 통해 채팅 시스템, 실시간 분석 등의 기능을 구현할 수 있다.
4. 트랜잭션 지원
여러 명령을 하나의 트랜잭션으로 묶어 처리하는 기능을 지원한다.
5. 레플리케이션 지원
데이터의 안정성을 높이기 위해 마스터-슬레이브 구조의 레플리케이션을 지원한다. 이를 통해 슬레이브 노드가 마스터 노드의 데이터를 복제하여 데이터의 안전성을 높일 수 있다.
6. Lua 스크립팅 지원
서버 측에서 Lua 스크립팅을 지원한다. 이를 통해 사용자 정의 로직을 서버 측에서 실행할 수 있다.
'Computer Science > Database' 카테고리의 다른 글
[Database] 저장 프로시저 (Stored PROCEDURE) (0) | 2023.07.25 |
---|---|
[Database] 트랜잭션 격리 수준 (Transaction Isolation Level) (0) | 2023.07.16 |
[Database] 트랜잭션 (Transaction) (0) | 2023.07.07 |
[Database] 정규화 (Normalization) (0) | 2023.07.07 |
[Database] 인덱스 (Index) (0) | 2023.06.30 |