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 기능을 활용하여 간단한 메시지 큐로 사용할 수 있다.
사용 시 주의사항
- 메모리 용량에 따라 성능이 달라질 수 있으므로, 메모리 관리가 중요하다.
- 데이터를 메모리에 저장하는 구조이기 때문에, 매우 큰 데이터셋을 다룰 때는 적합하지 않을 수 있다.
- 복잡한 쿼리 작업은 관계형 데이터베이스가 더 적합할 수 있다.
공식 문서
참고 사이트
728x90
728x90
'Database > Redis' 카테고리의 다른 글
[Redis] CCI Cake (0) | 2024.10.15 |
---|