반응형
여러 프로젝트를 살펴보니, 인메모리 저장소로 Redis를 사용하는 것을 많이 볼 수 있었습니다.
Redis가 무엇이고, 어떤 장점이 있길래 많이 사용하는 걸까요?
프로젝트에 적용하기 전에 간략하게 Redis를 살펴보도록 합시다.
1. Redis란?
Redis는 Remote Dictionary Server의 약자로, Key-Value 형태로 데이터를 저장하는 원격 서버를 의미합니다.
Redis 공식 홈페이지(https://redis.io/)에서는 Redis를 다음과 같이 간략하게 소개하고 있습니다.
‘Redis는 데이터베이스, 캐시, 메시지 브로커, 스트리밍 엔진으로 사용되는 오픈 소스의 인메모리 데이터 구조 저장소’
여기서, Redis는 디스크나 SSD가 아닌 메모리에 데이터를 저장하는 인메모리 NoSQL Key-Value 저장소임을 알 수 있습니다.
2. Redis의 장점
2-1. 빠른 성능
- 데이터를 디스크나 SSD에 저장하지 않고 서버의 인메모리에 저장하기 때문에, 디스크에 액세스하는 시간, 검색 시간으로 인한 지연이 없기 때문에 기본 DBMS보다 훨씬 성능이 좋습니다.
- 일반적으로 작업을 실행하는데 1ms 미만의 시간이 소요된다고 합니다.
2-2. 다양한 자료 구조 제공
- Redis의 공식 홈페이지에 따르면, Redis가 제공하는 자료 구조는 다음과 같습니다.
- 이렇게 거의 모든 유형의 데이터가 Redis를 사용하여 인 메모리에 저장될 수 있습니다.
- 이러한 다양한 자료 구조를 통해, 다양하게 활용할 수 있습니다.
- 예를 들면, 실시간 랭킹 구현 시에는 Sorted Sets 자료 구조를 이용하면 쉽고 빠르게 구현할 수 있습니다.
2-3. 분산 환경에서의 데이터 정합성
- 1대의 서버가 아닌, 여러 대의 서버에서 하나의 Redis를 바라보게 한다면, 데이터 정합성을 지킬 수 있습니다.
2-4. 분산 환경에서의 데이터 정합성
기본적으로 Redis는 In-Memory 저장소이기 때문에 메모리에서 데이터가 관리됩니다.
따라서, 서버가 종료되면 Redis에 저장된 데이터가 모두 휘발되게 됩니다.
이러한 데이터 휘발을 해결하기 위해 Redis는 메모리에 저장되어 있는 데이터를 디스크로 백업하는 영속성 기능을 지원합니다.
Redis의 영속성 지원 방법에는 다음과 같이 2가지 방식을 지원합니다.
- RDB 방식 (스냅샷 방식) : 설정한 주기마다 해당 시점의 데이터 스냅샷을 파일로 디스크에 저장하는 방식
- AOF 방식 (Append On File 방식) : Redis의 모든 Write 연산을 log 파일에 기록한 후에, 서버가 재실행 될 때 해당 log에 기록된 Write 연산을 재실행하는 형태로 데이터를 복구하는 방식
이러한 방식을 사용해서 데이터를 백업할 수 있습니다.
3. Redis 활용 사례
- 캐싱 서버
- 세션 저장소
- 실시간 랭킹 : Redis Sorted Set 데이터 구조를 사용하면 데이터를 빠르고 쉽게 가져올 수 있다.
- 채팅 및 메시징 : Reids Pub/Sub을 사용해서 구현할 수 있다.
- …
이렇게 정말 간략하게 Redis에 관해서 알아보게 되었습니다!
이후에는 개인 프로젝트에서 세션 저장소로 Redis를 적용하는 과정을 포스팅해보도록 하겠습니다!
반응형
'DB > Redis' 카테고리의 다른 글
[Redis] Redis의 다양한 자료구조와 활용 예시 알아보기 (0) | 2024.08.07 |
---|---|
[Redis] EC2 환경에서 Docker에 Redis 설치 후 실행하기 (0) | 2024.01.15 |