728x90
728x90

Redis(Remote Dictionary Server)

들어가며

  • 실시간 데이터(Real Time Data)를 처리하기 위해 사용할 수 있는 플랫폼인 Redis(Remote Dictionary Server)에 대해 정리해본다.

 

Redis(Remote Dictionary Server)

개념

  •  '키-값' 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)
  • 고성능의 인메모리(In-memory) 데이터 구조 스토어
  • 주로 데이터베이스, 캐시, 메시지 브로커로 사용되며, 다양한 데이터 구조를 지원한다.
  • 2009년 살바토르 산필리포(Salvatore Sanfilippo)가 처음 개발했다.

 

특징

  • 모든 데이터를 메모리(RAM)에 저장한다. 따라서 매우 빠르게 데이터를 읽고 쓸 수 있다.
    • 또한 데이터를 디스크에도 저장할 수 있다. (영구적으로 저장 가능)
  • 단순한 키-값 저장소가 아니라, 다양한 데이터 구조를 지원하여 리스트, 셋, 해시, 정렬된 셋 등을 다룰 수 있다.
  • 인메모리 기반이기 때문에 매우 빠르며, 초당 수십만 건의 요청을 처리할 수 있다.
  •  RDB (Redis Database) AOF (Append-Only File) 2가지 방식으로 데이터를 영구 저장할 수 있다.
    • RDB : 일정한 간격으로 메모리의 데이터를 디스크에 저장하는 방식
    • AOF : 각 쓰기 작업을 로그 파일에 기록하여 복구할 수 있도록 하는 방식
  • Redis Cluster를 사용하여 여러 대의 Redis 인스턴스를 통해 데이터를 분산하여 처리할 수 있다.
  • 발행/구독(Pub/Sub) 모델을 지원하여 메시지 브로커로 사용할 수 있다.
    • 클라이언트가 특정 채널을 구독하면 다른 클라이언트가 해당 채널에 메시지를 발행할 수 있다.

 

사용하는 경우

  • 데이터베이스에서 자주 조회되는 데이터Redis에 캐싱하여 응답 속도를 높일 수 있다.
  • 웹 애플리케이션의 세션을 Redis에 저장하여 분산 환경에서 세션을 관리할 수 있다.
  • 빠른 데이터 처리가 필요할 때, Redis를 이용하여 실시간 분석 작업을 할 수 있다.
  • Redis의 리스트Pub/Sub 기능을 활용하여 간단한 메시지 큐로 사용할 수 있다.

 

사용 시 주의사항

  • 메모리 용량에 따라 성능이 달라질 수 있으므로, 메모리 관리가 중요하다.
  • 데이터를 메모리에 저장하는 구조이기 때문에, 매우 큰 데이터셋을 다룰 때는 적합하지 않을 수 있다.
  • 복잡한 쿼리 작업은 관계형 데이터베이스가 더 적합할 수 있다.

 

공식 문서

 

Docs

 

redis.io

 

참고 사이트

 

Redis - The Real-time Data Platform

Developers love Redis. Unlock the full potential of the Redis database with Redis Enterprise and start building blazing fast apps.

redis.io

 

레디스 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 레디스(Redis)는 Remote Dictionary Server의 약자로서[4], "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스

ko.wikipedia.org

 

728x90
728x90

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

[Redis] CCI Cake  (0) 2024.10.15