본문 바로가기
📘 DataBase/Redis

[빅데이터 저장 및 분석을 위한 NoSQL & Redis] Chapter 2 - Redis 설치 및 데이터 처리

by GroovyArea 2023. 8. 20.

Redis의 주요 특징

  1. Redis는 NoSQL 데이터베이스로 분류되며 Key-Value 형태로 데이터를 관리합니다.

  2. Key-Value DB인 동시에 In-Memory 데이터 처리와 저장 기술을 제공하므로 빠른 Read/Write 성능을 가지고 있습니다.

  3. 다양한 데이터 유형을 지원하며 String, Set, Sorted Set, Hash, List, HyperLogLogs 등을 저장할 수 있습니다.

  4. 메모리 상의 데이터를 Dump 파일과 AOF(Append Of File) 방식으로 디스크에 저장할 수 있습니다.

  5. Master/Slave Replication을 통해 데이터의 분산 복제를 지원하며 Query Off Loading을 통해 Master는 Read/Write 작업, Slave는 Read 작업을 수행할 수 있습니다.

  6. 파티셔닝을 통해 수평 확장이 가능하며 동적인 스케일 아웃을 지원합니다.

  7. 데이터의 만료를 설정하여 일정 시간 후 자동으로 데이터를 삭제하는 Expiration 기능을 제공합니다.

Redis의 주요 업무 영역

  1. 빠른 쓰기/읽기 작업이 요구되는 영역에서 In-Memory DB의 장점을 활용합니다. 그러나 모든 데이터를 저장할 수 없으므로 주로 지속적인 관리가 필요한 영역에 제한적으로 사용됩니다. 일반적으로 기업 데이터를 저장하기보다는 덜 위험한 업무 영역에서 Secondary DB로 활용됩니다.

  2. 주로 다음과 같은 비즈니스 영역에서 활용됩니다:

    • 데이터 캐싱을 통한 빠른 작업이 필요한 영역
    • IoT 디바이스를 활용한 데이터 수집 및 처리
    • 실시간 분석 및 통계 분석
    • 메시지 큐, 머신 러닝, 애플리케이션 잡 매니지먼트, 검색 엔진
  3. 기존의 관계형 데이터베이스나 다른 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 등의 함수로 실행 가능
  • 데이터 검색, 수정, 삭제 등에 활용 가능
반응형