본문 바로가기
Programming/Redis, Kafka

Redis의 특징, 개념, 장점, 단점, 목적

by Renechoi 2023. 5. 31.

Redis(Remote Dictionary Storage) 

 

- 디스크가 아닌 메모리 기반의 data 저장소 -> 휘발성

- single thread : 단일 cpu

- 초당 5만 ~ 25만 reqeust 실행 가능

-  key-value 형식으로 데이터 저장 

 

 

 

장점:

- hardware 차이에서 오는 기본적인 퍼포먼스 성능 

Redis는 메모리 기반의 저장소로 데이터에 접근하는 속도가 빠르다. 하드웨어 성능의 차이로 인해 기본적인 성능 차이를 극복할 수 있는 장점 제공.

 

- 다양한 type의 아키텍처 지원 

문자열(String), 해시(Hash), 리스트(List), 집합(Set), 정렬된 집합(Sorted Set) 등의 데이터 구조를 활용할 수 있다. 다양한 용도에 맞게 데이터를 저장하고 활용할 수 있는 유연성을 제공.

 

- partitioning

 데이터를 분할(partitioning)하여 여러 개의 서버에 분산하여 저장하고 처리할 수 있다. 

 

- popular 

Redis는 인기 있는 데이터베이스 솔루션으로 널리 사용되고 있다. 

 

 

 

단점: 

- 휘발성 

Redis는 메모리 기반의 저장소로 데이터를 저장할 때 휘발성이기 때문에, 서버가 종료되거나 재시작되면 데이터가 모두 손된다.. 따라서 영속성(persistence)이 필요한 경우에는 별도의 설정이 필요하다.

 

 

- single thread 

 단일 스레드 환경에서 동작하기 때문에, 다중 처리나 동시성이 요구되는 작업에는 적합하지 않을 수 있다. 여러 개의 CPU 코어를 활용하여 병렬 처리를 할 수 없는 한계가 있다.

 

 

- memory fragmentation 

데이터를 메모리에 저장하기 때문에, 메모리 단편화(memory fragmentation) 문제가 발생할 수 있다. 데이터의 크기가 자주 변하는 경우에는 메모리를 효율적으로 관리하는 것이 중요.

 

 

- big size에 대해 적합하지 않음 

 

 

 

목적: 

cashing: 실제 원본에 가지 않아도 빠르게 접근할 수 있도록 임시적으로 저장해놓기 

캐싱은 실제 원본에 접근하지 않고도 미리 계산된 데이터나 자주 사용되는 데이터를 임시적으로 저장함으로써, 데이터에 빠르게 접근할 수 있도록 한다.

 

 

구조 

 

  1. Standalone(독립형): Redis는 단일 서버에서 독립적으로 동작할 수 있다. 이 경우 단일 인스턴스로 데이터를 관리하며, 주로 개발 또는 테스트 환경에서 사용된다.

  1. Master-Replica(마스터-레플리카): Redis는 마스터-레플리카 구조로 데이터를 관리할 수 있다. 마스터는 쓰기 작업을 처리하고, 레플리카는 마스터로부터 데이터를 복제하여 읽기 작업을 처리한다. 이를 통해 데이터의 가용성과 안정성을 높일 수 있다.

  1. Sentinel(센티넬): Redis Sentinel은 Redis 인스턴스의 고가용성(High Availability)을 제공하기 위해 사용된다. 센티넬은 마스터-레플리카 구조에서 마스터 서버의 상태를 모니터링하고, 필요에 따라 자동으로 장애 복구를 수행한다.

  1. Cluster(클러스터): Redis 클러스터는 여러 개의 서버에 데이터를 분산하여 저장하고 처리하는 분산 환경을 구성할 수 있다. 클러스터 구조를 사용하면 데이터의 확장성과 처리 성능을 높일 수 있다.

 

 

 

 

 

ref. https://fastcampus.co.kr/courses/211368/clips/

반응형