본문 바로가기
Data/Redis

[Redis] Redis란

by dev_ss 2023. 7. 9.

1. Redis란 :

  • Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터 베이스 관리 시스템 (DBMS)

 

  • IMDB : 데이터베이스, 캐시, 메세지 브로커로 사용되며 인메모리 데이터 구조

 

  • Single Thread : 명령어를 하나씩 처리하기 때문에 긴 명령어가 들어오면 처리될 때까지 후 순위의 명령어의 대기가 필요
    • get, set과 같은 단순한 명령어의 경우 초당 10만 개 이상 처리가 가능

 

 

2. 활용 사례 :

  • I/O가 많은 데이터 처리

 

  • 사용자의 세션 관리

 

  • API 캐싱

 

 

3. Redis의 데이터 구조 :

  • Strings : 텍스트, 직렬화된 개체 및 이진 배열을 포함하여 바이트 시퀀스를 저장

 

  • Lists : 문자열 값의 연결된 목록
    • 스택과 큐를 구현
    • 백그라운드 작업자 시스템 대기열 관리 구축에 용

 

  • Sets : 고유한 문자열(구성원)의 정렬되지 않은 모음

 

  • Sorted Sets : 연관된 점수로 정렬된 고유한 문자열(구성원)의 모음 / 둘 이상의 문자열이 동일한 점수를 갖는 경우 문자열은 사전순으로 정렬

 

  • Hashes : 필드-값 쌍의 컬렉션으로 구성된 레코드 유형

 

  • Streams : 일반적인 추가 전용 로그의 일부 한계를 극복하기 위해 여러 작업을 구현하는 데이터 구조
    • 이벤트 소싱(예: 사용자 작업, 클릭 추적 등)
    • 센서 모니터링(예: 현장 장치의 판독값)
    • 알림(예: 각 사용자의 알림 기록을 별도의 스트림에 저장)

 

  • Geospatial indexes : 좌표를 저장하고 검색에 사용

 

  • Bitmaps : 실제 데이터 유형이 아니라 비트 벡터처럼 취급되는 문자열 유형에 정의된 일련의 비트 지향 작업에 최적

 

  • Bitfields : 임의 비트 길이의 정수 값을 설정, 증분 및 조회가 가능

 

  • HyperLogLog : 세트의 카디널리티를 추정하는 확률적 데이터 구조

 

 

4. Redis 사용 시 주의할 점 :

  • 서버에 장애가 발생했을 때, 대비책이 필요
    • 인메모리 데이터 저장소의 특성상, 서버에 장애가 발생했을 경우 데이터 유실이 발생이 가능

 

  • 컴퓨터 자원의 관리가 필요
    • 인메모리 데이터 저장소기 때문에 메모리 관리가 중요

 

  • 처리하는데 시간이 오래 걸리는 요청, 명령은 기피
    • 싱글 스레드의 특성상, 한 번에 하나의 명령만 처리가 가능

 

 

5. Redis 세부 개념 :

  • 데이터 이중화 구조(Master-Slave) : Redis Replication

 

  • 분산 처리 : Redis cluster

 

  • 장애 복구 시스템 : Redis SentinelRedis TopologyRedis ShardingRedis Failover 등
반응형

'Data > Redis' 카테고리의 다른 글

[Redis] Pub/Sub  (0) 2023.07.19
[Redis] Redis-cli 기본 명령어  (0) 2023.07.11