Redis 개요

이건우·2025년 3월 11일

웹 프로그래밍

목록 보기
18/43

Redis는 메모리 기반의 데이터 저장소로, 데이터베이스, 캐시, 메시지 브로커 등 다양한 용도로 활용되는 오픈 소스 프로젝트였으나, 24년 3/21 부터 일부 고급 기능 모듈(예: RediSearch, RedisGraph 등)에 대해 별도의 라이선스를 적용, 상업적 이용 특히 클라우드 서비스 형태로의 재배포에 제한을 두고 있어 SaaS에서 사용하기에 제한적인 부분이 있어, 고려하며 사용해야 합니다.

기본 특징

  • 메모리 기반 저장소: Redis는 데이터를 메모리에 저장, 매우 빠른 읽기/쓰기 성능을 제공
  • 다양한 역할: 단순한 키-값 저장 외의 캐시, 실시간 데이터 처리, 세션 관리, 메시지 큐 등 여러 용도로 사용
  • 오픈 소스: 누구나 자유롭게 사용할 수 있으며, 활발한 커뮤니티와 풍부한 문서가 지원됩니다.

기능적 특징

다양한 데이터 구조 지원

Redis는 문자열(String) 뿐만 아니라 해시(Hash), 리스트(List), 셋(Set), 정렬된 셋(Sorted Set), 비트맵, 하이퍼로그로그(HyperLogLog), 지오스페이셜(Geospatial) 인덱스, 스트림(Stream) 등 다양한 데이터 타입을 지원하여 여러 상황에 맞는 데이터 처리 가능

영속성 옵션

메모리 기반이지만, Redis는 데이터를 디스크에 저장하는 두 가지 방식(스냅샷(RDB)와 Append Only File(AOF))을 제공하여 서버 재시작이나 장애 시에도 데이터 복구 가능

복제 및 고가용성

마스터-슬레이브 복제를 통해 데이터를 여러 노드에 분산 가능, Redis Sentinel을 사용하면 자동 장애 조치(failover)와 모니터링을 지원, 클러스터 모드를 활용하여 분산 환경에서의 확장성과 안정성을 높일 수 있음

Pub/Sub 기능

Redis는 메시지 발행(Publish)과 구독(Subscribe) 기능이 내장되어, 실시간 채팅이나 알림 시스템 등 메시지 브로커로도 활용 가능

트랜잭션 및 스크립팅

여러 명령어를 원자적으로 실행하는 트랜잭션 기능과 Lua 스크립팅을 통해 복잡한 연산을 서버 측에서 처리 가능

장단점

장점

  • 속도: 메모리 기반 처리로 매우 빠른 응답 속도
  • 유연성: 다양한 데이터 구조를 지원하여 여러 용도에 맞게 활용가능
  • 확장성: 복제, Sentinel, 클러스터링 등의 기능으로 고가용성 및 확장성 확보 가능

단점

  • 메모리 의존성: 데이터를 메모리에 저장하므로, 대량의 데이터를 저장할 경우의 메모리 비용이 증가 가능성
  • 단일 스레드 아키텍처: 대부분의 작업이 단일 스레드에서 처리되므로, CPU 집약적인 작업에는 한계가 있을 수 있음
profile
새싹개발자

0개의 댓글