나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2024-11-04 13:06:35

Redis

이 문서는 토막글입니다.

토막글 규정을 유의하시기 바랍니다.


_D_ata_B_ase _M_anagement _S_ystem
{{{#!wiki style="margin: 0 -10px;"
{{{#!folding [ 주요 DBMS ]
{{{#!wiki style="margin-bottom: -15px;"
파일:oracle-database.png 파일:MySQL 로고.svg 파일:Microsoft SQL Server 로고.svg파일:Microsoft SQL Server 로고(white).svg
파일:PostgreSQL 로고.svg 파일:MongoDB 로고.svg파일:MongoDB 로고 화이트.svg 파일:MariaDB 가로 로고.svg파일:MariaDB 가로 로고 화이트.svg
파일:logo_Redis(2024).svg 파일:supabase-logo-wordmark--light.svg파일:supabase-logo-wordmark--dark.svg 파일:Primary_Horizontal_Lockup_Full_Color.svg파일:Primary_Horizontal_Lockup_Full_Color_Inverted.svg
}}}}}}}}} ||
그 외 DBMS

Redis
파일:logo_Redis(2024).svg
<colbgcolor=#ffffff><colcolor=#FF4438> 원저자 살바토레 산필리포 (Salvatore Sanfilippo)
개발자 Redis Labs
발표일 2009년
분류 인 메모리 데이터베이스
계열 NoSQL
지원 언어 Lua 5.1
라이선스 Redis Source Available License 2.0
Server Side Public License
파일:홈페이지 아이콘.svg | 파일:GitHub 아이콘.svg파일:GitHub 아이콘 화이트.svg

1. 개요2. 상세3. 주요 기능
3.1. 데이터 구조3.2. 데이터 지속성3.3. 분산 및 고가용성
4. 용도 및 활용5. 문제점

[clearfix]

1. 개요

파일:Logo-redis.svg파일:Logo-redis-white-text.svg
이전 로고 (~2024.04)

오픈 소스 인 메모리 데이터 베이스 관리 시스템 프로젝트 겸 호스팅 서비스이다.

2. 상세

"Remote Dictionary Server(원격 딕셔너리 서버)"의 약자로서, 메모리 내에서 데이터가 저장되어 이를 통한 서비스를 제공해주는 형태로 이루어지는 오픈 소스 시스템이다. 메모리를 기반으로 한 DB로서 키값(Key-Value) 구조의 데이터 저장이 가능하며, 빠른 조회 및 쓰기를 지원해 주는 기능을 지니고 있다.

또한 다양한 데이터 구조를 지원하고, 비동기 처리 및 분산처리를 위한 기능을 제공하기 때문에 고성능 시스템에서 널리 쓰이고 있다.

3. 주요 기능

3.1. 데이터 구조

Redis의 데이터 구조는 아래의 요소들처럼 분류되어 나타난다.

3.2. 데이터 지속성

Redis는 데이터를 디스크에 저장함으로써 서버 종료 이후에도 데이터 복구가 가능한 지속성 옵션을 지니고 있다. 이러한 데이터 지속성은 각각 3가지로 분류되는데, RDB[1], AOF[2], Hybrid 방식(RDB, AOF 기능 절충 방식)이 이에 해당된다.

3.3. 분산 및 고가용성

주로 복제(Replication), 센티널(Redis Sentinel), 클러스터(Redis Cluster)와 같은 기능을 제공하고 있다.

Redis는 마스터-슬레이브 구조의 데이터 복제가 가능하기 때문에, 마스터 서버의 데이터를 슬레이브 서버에 복사함으로써 읽기 부하 분산 및 데이터 백업 목적으로 사용되고 있다. Redis 센티널의 경우 고가용성을 위한 기능으로서 마스터 서버에 장애가 발생할 경우 자동으로 슬레이브 서버를 마스터 서버로 전환시켜 장애를 복구해줌과 동시에 감시 기능도 제공해 준다. Redis 클러스터의 경우는 수평 확장을 가능케 해주어 데이터를 여러 노드에 분산시켜 저장할 수 있도록 해주는 기능을 지니고 있어 데이터의 자동 분할 저장이 가능하고 대규모 트래픽 처리가 용이하다는 이점이 있다.

4. 용도 및 활용

Redis는 빠른 읽기 및 쓰기 성능을 가지고 있기에 웹 애플리케이션 데이터 캐싱 용도로 자주 쓰인다. 그리고 사용자 세션을 저장하는 용도로도 많이 사용되고, List 또는 Pub/Sub 구조를 사용하여 메시지 큐의 기능으로도 쓰이고 있다. 또한 Sorted Set 기능을 이용하여 리더보드나 순위 관리에 최적화된 성능을 제공해 주며, 분산 환경에서 락(Lock)을 구현시키는 등 보안 기능에도 매우 탁월하여 실생활에서 아주 유용하게 쓰이고 있다.

5. 문제점

데이터를 주기적으로 저장하기 때문에 데이터 일부분의 손실이 발생하며, 데이터 지속성에 들어가는 AOF의 경우 로그 파일(Log File)이 커질 수 있어 성능에 악영향을 미친다는 단점이 있다.


[1] Redis Database Backup / Redis 데이터베이스 백업[2] Append-Only File / 추가 전용 파일