2023. 12. 7. 09:48ㆍNoSQL/Redis
Redis DB 는 인-메모리 기반의 데이터 저장 구조
관계형 DBMS의 경우에는 파일 기반의 데이터 저장 구조이며 Redis DB는 순수 인-메모리 기반의 데이터 저장 구조이다.
파일 기반의 데이터 자장구조가 의미하는 것은 사용자가 입력, 수정, 삭제, 조회하는 모든 데이터는 1차적으로 메모리에 우선 저장되었다가 2차적으로는 디스크에 존재하는 파일에 저장되며 파일들은 DBMS에 의해 할당되고 자동으로 관리되는 시스템이다.
반면 순수 인-메모리 기반은 1차적으로 모든 데이터는 메모리에 저장되며 사용자 명령어 또는 시스템 환경 설정방법들을 통해 필요에 따라 선택적으로 디스크에 존재하는 파일에 저장된다.
하지만 해당 파일은 DBMS에 의해 할당되거나 자동 관리되지 않으며 필요에 따라 사용자는 수동 관리 할 수 있다.
만약 사용자가 추가적인 관리를 안해주면 모든 데이터는 메모리 상에만 존재하여 예기치 못한 장애가 발생했을 때 모든 데이터는 유실된다.
필요에 따라 데이터 유실을 방지할 수 있는 다양한 기능들이 제공되지만 이를 완벽하게 보호하는 것은 한계가 있다.
키-밸류(Key-Value) 데이터 구조는 Key와 데이터 값으로 구성
Redis DB의 데이터 저장 구조를 테이블이라고 표현한다. 기존 관계형 DB의 저장 구조와 논리적인 표현은 동일하지만 데이터를 표현하는 방법은 완전히 다르다. 또한 관계형 DB 에서 데이터의 빠른 검색을 위해 인덱스를 사용하는 것처럼 Redis DB 에서도 인덱스를 생성할 수 있지만 인덱스의 종류 및 구조는 많이 다르기 떄문에 표현에는 한계가 있다.
데이터 저장구조와 표현 방법이 상이한 점을 고려했을 때 관계형 DB 의 데이터 구조를 그대로 매핑해서 사용할 수는 없으며 데이터의 일부를 잠시 보관하거나 또는 가공 처리된 데이터를 임시로 보관할 수 있다.
가공 처리가 요구되는 비즈니스 환경에서 적합
Redis와 Memcached DB를 운영하고 있는 사용자 환경을 살펴보면 대부분 Redis 와 MongoDB, Redis와 Cassandra, Memcached와 Cougch DB, Redis와 Oracle, Redis와 MY-SQL 형태의 하이브리드 구조로 구축 운영하고 있는 것을 볼 수 있다.
이와 같은 경우 Redis 와 Memcached는 보조 DB로 사용하는데 그 이유는 대부분 메인 DB로 선택한 제품들은 파일 기반의 저장 구조이다 보니 디스크 IO 문제로 인해 발생하는 성능 지연 문제를 해소하기 위해 키-밸류 DB 를 보조 DB로 사용하는 것이다.
즉, 데이터의 가공처리, 통계 분석, 데이터 캐싱, 메시지 큐 등의 용도로 사용할 수 있다.
활용
1. 실시간 분석
Redis 의 장점을 잘 적용할 수 있는 비즈니스 영역은 실시간 가공 처리 및 분석이 요구되는 분야이다.
메인 DB에는 현재 시점 또는 과거 시점 데이터를 저장하고 필요에 따라 데이터를 읽은 다음 가공처리 및 분석 작업은 Redis 서버에서 수행 한 후 메모리에 저장하고 그 결과를 사용자에게 제공하는 것
2. IOT
NoSQL 기술 중 인-메모리 기반의 Redis 제품은 다른 도큐먼트 DB, 컬럼-패밀리 DB, 그래프 DB와 비교했을 때 매우 경량 SW이며 다양한 IOT 디바이스와 쉽고 간단하게 연동할 수 있기 때문에 IOT 제품들의 데이터를 저장 및 관리하기에 매우 적합하다.
ex) 라즈베리파이, 아두이노, 안드로이드, ARM 플랫폼
3. 계측 정보 수집
다양한 산업 분야에서 의미 있는 다양한 데이터들이 발생하고 있는데 기존에는 이를 제대로 수집하지 못했을 뿐 아니라 활용도 못했었다. Redis 서버는 계측 장비(온도, 습도, 조도, 속도, 위치정보, 맥박/심장 박동수 등)로 부터 수집된 데이터를 쉽고 빠르게 저장할 수 있고 이를 가공처리 할 수 있다.
4. 개인화 정보 관리
웹사이트에서 사용자 개인의 특성과 기호에 맞게 페이지 화면을 편집해서 볼 수 있듯이 Redis 에 저장되어 있는 데이터를 사용자의 필요에 따라 쉽게 가공 처리해 편집이 요구되는 비즈니스 환경에 적용할 수 있다.
5. 전자 상거래 비즈니스
관계형 DBMS를 기반으로 했던 보편적인 비즈니스 영역에도 동일하게 적용할 수 있다. 다만 과거 시점 데이터를 지속적으로 저장 관리하는 것은 한계가 있고 예기치 못한 문제로 인해 시스템 크래시가 발생하는 경우 지속적인 서비스를 할 수 없기 때문에 반드시 분산-복제(Shard-Replication) 시스템을 구축 운영해야 한다.
최근에는 AI, Machine Learning 영역에서 발생하는 데이터를 수집, 분석 용도로 활용되고 있으며 Redis 서버의 경우 이와 같은 영역의 다양한 오픈소스 솔루션과 쉽게 연동할 수 있는 Connector Driver 들이 지원하고 있다.
주요 특징
1. Redis 는 키-밸류 데이터베이스로 분류되는 NoSQL 이다.
2. 키-밸류 DB이면서 대표적인 In Memory 기반의 데이터 처리 및 저장기술을 제공하기 때문에 다른 NoSQL 제품에 비해 상대적으로 빠른 Read/Write 가 가능하다.
3. String, Set, Sorted Set, Hash, List, HyperLogLogs 유형의 데이터를 저장할 수 있다.
4. Dump 파일과 AOP(Append Of File) 방식으로 메모리 상의 데이터를 디스크에 저장할 수 있다.
5. Master/Slvae Replication 기능을 통해 데이터의 분산, 복제 기능을 제공하며 Query Off Loading 기능을 통해 Master는 Read/Write를 수행하고 Slave는 Read 만 수행할 수 있다.
6. 파티셔닝(Partitioning)을 통해 동적인 스케일 아웃(Scale Out)인 수평 확장이 가능하다.
7. Expriation 기능은 일정 시간이 지났을 때 메모리 상의 데이터를 자동 삭제할 수 있다.
주요 업무 영역
1. 인메모리 DB가 제공하는 최대 장점인 빠른 쓰기와 읽기 작업은 가능하지만 데이터를 메모리에 저장할 수 없기 때문에 지속적인 관리가 요구되는 비즈니스 영역에 사용하는 것은 제한적. 전형적인 기업 데이터를 저장하기 위한 용도보다 덜 위함한 업무 영역에서 세컨더리 DB 로 사용되는 것이 보편적
2. 주된 비즈니스 영역은 데아터 캐싱을 통한 빠른 쓰기/읽기 작업이 요구되는 업무 영역, IOT Device를 활용한 데이터 수집 및 처리 영역, 실시간 분석 및 통계 분석 영역 등 이다.
3. 메시지-큐(Message Queues), 머신 러닝(Machine Learning), Application Job Manage-ment, 검색 엔진(Text Search) 업무 영역에서 기존의 관계형 DB와 타 NoSQL에 비해 효율적으로 사용할 수 있다.
'NoSQL > Redis' 카테고리의 다른 글
Redis 데이터 입력/수정/삭제/조회 (0) | 2023.12.10 |
---|---|
Redis 간단한 용어 설명 (1) | 2023.12.10 |
Redis Standalone 서버 구축 (0) | 2023.12.08 |
EC2 ubuntu Redis 설치 (0) | 2023.12.08 |
NoSQL 개념 (0) | 2023.12.06 |