The open-source, in-memory data store used by millions of developers as a cache, vector database, document database, streaming engine, and message broker.
수백만 명의 개발자가 캐시, 벡터 데이터베이스, 문서 데이터베이스, 스트리밍 엔진 및 메시지 브로커로 사용하는 오픈소스 인메모리 데이터 저장소입니다.
레디스의 뜻과 특징
레디스란 키-값 구조의 비정형 데이터를 저장하고, 관리하기 위한 비관계형 DBMS이다. (NoSQL)
- 빠른 성능: 레디스는 메모리 기반 저장소이기 때문에 디스크에 접근할 필요 없이 빠르게 데이터를 읽고 쓸 수 있다.
- 다양한 데이터 유형 지원: 레디스에는 기본 타입인 String부터 List, Set, Hash, Sorted set, Stream 등 다양한 타입의 데이터를 처리할 수 있다.
- 지속성 옵션: 인메모리 DB임에도 두 가지 방식(RDB, AOF)을 통해 일정 시간 간격이나 특정 조건에 따라 디스크에 저장하는 방식으로 데이터의 지속성을 제공하여, 데이터를 안전하게 보존할 수 있도록 한다.
- TTL (Time-To-Live): 키가 생성된 후부터 얼마나 오랫동안 메모리에 저장되어 있어야 하는지를 초 단위로 지정할 수 있다.
레디스의 주요 특징은 MySQL과 같은 디스크 기반 데이터베이스와 달리 메모리에 데이터를 저장하는 인메모리 데이터베이스로, 데이터 처리가 상대적으로 빠르다는 것이다.
이에 따라 주로 캐싱, 세션 관리, 메시징 큐, 실시간 분석 등과 같이 빠른 데이터 처리가 필요한 경우에 사용된다.
레디스의 지속성
레디스는 인메모리 DB이지만, 데이터를 디스크에 저장하는 여러 방법을 제공해 지속성을 보장해준다.
이를 통해 단순 캐시 시스템을 넘어, 데이터의 안전이 중요한 다양한 애플리케이션에서 레디스를 사용할 수 있다는 것이다.
주로 사용되는 지속성 옵션은 RDB와 AOF가 있다.
● RDB ; Redis DataBase
RDB는 특정 시점의 데이터 스냅샷을 디스크에 저장하는 방식이다. 이 방법은 일정한 시간 간격이나, 특정 조건을 만족할 때 자동으로 수행될 수도 있고, 수동으로 생성 또한 가능하다.
불러올 땐 스냅샷 파일 하나만 로드하면 되므로, 레디스 인스턴스를 빠르게 재시작할 때에나 대량의 데이터를 복구할 때 효율적으로 사용이 가능하다.
단점은 스냅샷인 만큼 그 이후 발생한 변경사항은 복구할 수 없다는 것이다. 스냅샷 이후 데이터 손실을 고려하여 중요 데이터에 대해 지속적으로 스냅샷을 남기는 것이 중요하다.
(우리가 주로 아는 Relational Database와 헷갈리지 말자.)
● AOF ; Append Only File
AOF는 수행된 모든 쓰기 연산을 파일에 기록한다. 이후 레디스가 시작될 때 AOF 파일에 기록된 연산을 순차적으로 재실행하는 것이다.
이는 데이터 RDB와 달리 데이터 손실의 가능성을 최소화하지만, 파일의 크기가 너무 크고 복구 속도 또한 느릴 수가 있다.
파일의 크기가 커지는 것을 방지하기 위해서 AOF 파일의 내용을 정기적으로 재작성할 수 있다.
RDB와 AOF 파일을 동시에 사용함으로써, 데이터의 중요성 및 사용 환경에 따른 선택이 가능하다.
레디스 워크벤치
물론 명령어를 모두 외워 쉘에서 수행하는 것이 제일 좋겠지만,
워크벤치를 사용한다면 초보자들도 쉽게 레디스를 이용할 수 있으며 데이터를 한 눈에 조회할 수 있다.
RedisInsight https://redis.com/redis-enterprise/redis-insight/
RedisInsight | The Best Redis GUI
RedisInsight provides an intuitive and efficient graphical interface for Redis, allowing you to interact with your databases and manage your data.
redis.com
RedisInsight는 레디스에서 제공하는 레디스 워크벤치로, GUI 뿐만 아니라 CLI를 통해서도 레디스를 조작할 수 있다.
무료로 사용할 수 있으므로 레디스가 처음이거나, 어색한 사람들은 RedisInsight를 통해 데이터의 저장 방식과 조작법을 이해하는 것도 좋은 선택일 수 있다.