[Redis] 레디스의 특징 및 제품 유형

    레디스(Redis)의 개요

    레디스(Remote Directory System, Redis)는 비정형 데이터를 저장하고 관리하기 위한 키-밸류(Key-Value) 데이터베이스로 오픈소스 기반의 비관계형 데이터베이스 관리 시스템입니다. Key-Value 데이터베이스이기 때문에 NoSQL로 분류되며,  2015년부터는 RedisLab co.에서 만들어진 상용 버전과 누구나 무료로 사용할 수 있는 오픈소스 버전으로 나뉘어져 있습니다.

     

    [Redis] 레디스의 특징 및 제품 유형

     

    레디스의 역사는 2009년 Antirez라는 별명을 사용한 Salvatore Sanfilippo(2020년에 현재는 Redis에서 물러난 상태)에 의해서 처음 만들어졌습니다. 그는 이탈리아 스타트업의 확장성을 개선하기 위해서 실시간 웹 로그 분석기를 개발하게 되었고 Redis 프로젝트가 시작하게 되었습니다.

     

    Salvatore Sanfilippo

     

    성공적으로 프로젝트를 진행하면서 그는 소스를 오픈소스화 시키기로 하였고, Redis는 Instagram과 Github 등에서 채택하기도 했습니다. (현재는 셀수없는 수많은 회사들이 Redis를 사용하고 있습니다.)

     

    레디스의 특징

    키밸류(KeyValue)

    - 레디스는 Key-Value 형태의 NoSQL 진형의 대표적인 DB중 하나입니다.

     

    인메모리(In Memory) 기반

    - 레디스를 쓰는 가장 핵심적인 이유가 바로 인메모리 기반이라는 것입니다. 메모리에 데이터를 처리 및 저장하는 기술을 사용하게 되면서 빠른 속도(Read/Write)를 처리해야 하는 경우 레디스를 쓰는 경우가 많습니다. 반대로 메모리 기반이기 때문에 H/W를 많이 타게 되며, 많은 용량을 처리하기에는 한계가 있어서 적합하지 않습니다.

     

    디스크 저장 가능

    인메모리라고 해서 데이터가 휘발성으로 무조건 날라가는 것은 아닙니다. Dump 파일과 AOF(Append Of File) 방식으로 메모리에 있는 데이터를 디스크로 내릴 수 있습니다.

     

    데이터 분산/복제

    Master/Slave Replication 기능을 통해서 데이터 분산 및 복제 기능을 제공하고 Query Off Loading 기능을 통해 마스터(Master)는 읽기와 저장 모두를 슬레이브(Slave)는 읽기(Read)만 수행할 수 있습니다.

     

    수평 확장(Scale Out)

    파티셔닝(Partitioning)으로 동적인 수평 확장(Scale Out)이 가능합니다.

     

    데이터 생명주기

    Expriation 기능을 사용하여 일정 시간이 지났을 때 메모리 상에서 데이터를 삭제시킬 수 있습니다.


     

    이처럼 레디스는 메모리에 저장하기 때문에 데이터의 분실 위험이 있으며, 중요하거나 주된 업무에서는 사용하기가 힘들며 캐싱(Caching) 기능이 필요하거나 적은 데이터를 빠르게 주고 받아야 되는 경우 등에 사용하기 적합합니다. 즉 보편적으로는 메인 DB를 보좌하는 세컨더리 DB로 사용하는 경우가 많습니다.

     

    제품의 유형

    레디스는 오픈소스로 시작을 하였지만, 현재는 엄연히 회사가 있으며 레디스를 상용으로 판매하여 다양한 기능을 추가한 버전도 존재합니다.

     

    커뮤니티 에디션(Community Edition)

    일반적으로 커뮤니티 에디션은 오픈소스 라이센스를 기반으로 하는 버전으로 별도의 비용이 들지 않고, 무료로 사용을 할 수 있습니다. 다만 커뮤니티 버전을 사용하기 위해서는 의무사항들이 존재하며 이를 지키지 않을 경우 문제가 발생할 수 있습니다.

     

    엔터프라이즈 에디션(Enterprise Edition)

    엔터프라이즈 에디션은 커뮤니티 에디션 + @ 버전이라 생각하면 됩니다. 기본적으로 커뮤니티 에디션은 레디스에서 문제가 발생하게 될 경우 회사는 그 어떠한 책임도 지지 않습니다. 엔터프라이즈 에디션의 경우 다양한 기술적인 문제가 발생할 경우 회사가 책임을 지고 기술 지원 및 유지보수 작업도 수행해 줍니다.

     

    거기에 레디스를 서포트하는 수많은 기능들이 추가되는데 대표적으로 사용자 관리, 권한 등을 설정하여 제공이 가능합니다.

     

    참고자료

    [1] https://en.wikipedia.org/wiki/Redis

    [2] https://redis.io/

    댓글

    Designed by JB FACTORY