Redis의 주요 특징
Redis는 NoSQL 데이터베이스로 분류되며 Key-Value 형태로 데이터를 관리합니다.
Key-Value DB인 동시에 In-Memory 데이터 처리와 저장 기술을 제공하므로 빠른 Read/Write 성능을 가지고 있습니다.
다양한 데이터 유형을 지원하며 String, Set, Sorted Set, Hash, List, HyperLogLogs 등을 저장할 수 있습니다.
메모리 상의 데이터를 Dump 파일과 AOF(Append Of File) 방식으로 디스크에 저장할 수 있습니다.
Master/Slave Replication을 통해 데이터의 분산 복제를 지원하며 Query Off Loading을 통해 Master는 Read/Write 작업, Slave는 Read 작업을 수행할 수 있습니다.
파티셔닝을 통해 수평 확장이 가능하며 동적인 스케일 아웃을 지원합니다.
데이터의 만료를 설정하여 일정 시간 후 자동으로 데이터를 삭제하는 Expiration 기능을 제공합니다.
Redis의 주요 업무 영역
빠른 쓰기/읽기 작업이 요구되는 영역에서 In-Memory DB의 장점을 활용합니다. 그러나 모든 데이터를 저장할 수 없으므로 주로 지속적인 관리가 필요한 영역에 제한적으로 사용됩니다. 일반적으로 기업 데이터를 저장하기보다는 덜 위험한 업무 영역에서 Secondary DB로 활용됩니다.
주로 다음과 같은 비즈니스 영역에서 활용됩니다:
- 데이터 캐싱을 통한 빠른 작업이 필요한 영역
- IoT 디바이스를 활용한 데이터 수집 및 처리
- 실시간 분석 및 통계 분석
- 메시지 큐, 머신 러닝, 애플리케이션 잡 매니지먼트, 검색 엔진
기존의 관계형 데이터베이스나 다른 NoSQL에 비해 효율적으로 사용되며, 메시지 큐, 머신 러닝, 애플리케이션 잡 매니지먼트, 검색 엔진과 같은 영역에서 특히 효과적으로 활용될 수 있습니다.
2.5 데이터 처리
2.5.1 용어 설명
Key-Value DB의 논리적 구조
용어 | 설명 |
---|---|
Table | 하나의 DB에서 데이터를 저장하는 논리적 구조 |
Data Sets | 테이블을 구성하는 논리적 단위 |
Key | 하나의 Key는 하나 이상의 조합된 값으로 표현 가능 |
Values | Key에 대한 구체적인 데이터 값 |
2.5.2 데이터 입력/수정/삭제/조회
종류 | 설명 |
---|---|
set | 데이터 저장 (key, value) |
get | 저장된 데이터 검색 |
rename | 저장된 데이터 값 변경 |
randomkey | 저장된 key 중 랜덤 key 검색 |
keys | 저장된 모든 key 검색 |
exists | 검색 대상 key 존재 여부 확인 |
mset/mget | 여러 개의 key와 value를 저장하고 검색 |
2.5.3 데이터 타입
종류 | 설명 |
---|---|
Strings | 문자 및 Binary 데이터 저장 |
List | 배열 형태의 데이터 저장 |
Hash | 필드와 값으로 구성된 테이블 저장 |
Set | 정렬되지 않은 문자열 저장 |
Sorted Set | 정렬된 문자열 저장 |
Bit | 0과 1로 표현하는 데이터 타입 |
HyperLogLogs | 고유한 Element의 개수 계산 |
Geo | 위치 정보(경도, 위도) 데이터 저장 |
2.6 Redis 확장 Module
1) Redis Server: 빅데이터 저장 및 관리 기술 제공
2) Redis Extent Module: 다양한 기능 개발하여 Redis Server에 추가
모듈명 | 설명 |
---|---|
REJSON | JSON 데이터 처리를 위한 모듈 |
REDISQL | Redis와 SQLite 연동하여 관계형 데이터 저장 모듈 |
RedisSearch | 내부 검색 엔진을 활용하는 모듈 |
Redis-ML | 머신 러닝 모델 서버를 Redis에서 사용하는 모듈 |
Redis-sPiped | 데이터 암호화 기능을 제공하는 모듈 |
2.7 Lua Function & Script
Lua 스크립트의 주요 특징
- 가벼운 Script Programming Language
- 절차형 및 객체지향 프로그래밍 가능
- Redis Server 내장된 Lua Interpreter 사용
- eval, evalsha 등의 함수로 실행 가능
- 데이터 검색, 수정, 삭제 등에 활용 가능
'📘 DataBase > Redis' 카테고리의 다른 글
[빅데이터 저장 및 분석을 위한 NoSQL & Redis] Chapter 6 - Redis Cluster 시스템 & 로그 모니터링 (0) | 2023.08.20 |
---|---|
[빅데이터 저장 및 분석을 위한 NoSQL & Redis] Chapter 5 - Redis 아키텍처 (0) | 2023.08.20 |
[빅데이터 저장 및 분석을 위한 NoSQL & Redis] Chapter 4 - Redis Data Modeling (0) | 2023.08.20 |
[빅데이터 저장 및 분석을 위한 NoSQL & Redis] Chapter 3 - 트랜잭션 제어 & 사용자 관리 (0) | 2023.08.20 |
[빅데이터 저장 및 분석을 위한 NoSQL & Redis] Chapter 1 - NOSQL 개념 (0) | 2023.07.23 |