본문 바로가기
Backend

Redis란?

by Dreamvelope 2024. 4. 18.

Redis란?

Redis는 "Remote Dictionary Server"의 약자로, 오픈 소스의 인메모리 데이터 구조 저장소입니다. 주로 데이터베이스, 캐시, 메시지 브로커로 사용됩니다. Redis는 다양한 데이터 구조를 지원하며, 예를 들어 문자열, 리스트, 맵, 세트, 정렬된 세트 등이 있습니다. 또한, 고성능을 자랑하며, 데이터의 지속성을 제공하기 위해 디스크에 데이터를 저장할 수도 있습니다.

Redis의 주요 특징으로는 빠른 성능, 데이터의 지속성 옵션, 자동 복제, 다양한 데이터 구조 지원, Lua 스크립팅, LRU 캐싱 등이 있습니다. Redis는 실시간 애플리케이션에서 널리 사용되며, 예를 들어 실시간 분석, 게임 리더보드, 세션 관리, 웹 페이지 캐싱 등에 유용합니다.

Redis특징

장점


  1. 인메모리 처리: Redis는 모든 데이터를 메인 메모리(RAM)에 저장하고 처리합니다. 디스크 기반의 데이터베이스와 달리, 메모리는 데이터 액세스 시 디스크 I/O를 요구하지 않으므로 읽기 및 쓰기 작업이 훨씬 빠릅니다.
  2. 간단한 데이터 구조: Redis는 간단하고 효율적인 데이터 구조를 사용하여 데이터를 저장하고 조회합니다. 예를 들어, 해시 테이블과 같은 데이터 구조는 키-값 쌍으로 데이터에 빠르게 액세스할 수 있게 해줍니다.
  3. 단일 스레드 모델: Redis는 기본적으로 단일 스레드로 동작합니다. 이는 멀티 스레딩 때 발생할 수 있는 컨텍스트 스위칭이나 락 경쟁(Concurrency issues) 등의 오버헤드가 없다는 것을 의미합니다. 결과적으로 요청 처리가 매우 빨라집니다.
  4. 비동기 및 파이프라이닝 지원: Redis는 비동기 작업과 파이프라이닝을 지원하여, 여러 명령을 동시에 보내고, 하나가 완료될 때까지 기다리지 않고 다음 명령을 실행할 수 있습니다. 이는 네트워크 지연 시간을 최소화하고, 대량의 요청을 빠르게 처리할 수 있게 합니다.
  5. 최적화된 구현: Redis는 매우 최적화된 C로 작성되었습니다. 이는 Redis가 하드웨어 리소스를 효율적으로 활용하면서 고성능을 유지할 수 있게 돕습니다.

단점


  1. 메모리 제한: Redis는 주로 메모리를 사용하여 데이터를 저장하기 때문에, 사용 가능한 메모리 양이 Redis 인스턴스의 용량을 결정합니다. 대량의 데이터를 저장해야 하는 경우, 비용이 많이 들거나 메모리 확장이 필요할 수 있습니다.
  2. 지속성 문제: Redis는 기본적으로 메모리에 데이터를 저장하므로, 전원이 꺼지면 데이터가 손실될 위험이 있습니다. 비록 Redis에는 디스크에 데이터를 저장할 수 있는 몇 가지 지속성 옵션이 있지만(예: RDB, AOF), 이들 방법은 완벽한 지속성을 보장하지 않거나 성능 저하를 일으킬 수 있습니다.
  3. 데이터 보안: Redis는 기본적으로 암호화를 지원하지 않습니다. 따라서 중요한 데이터를 처리할 때는 트래픽 암호화를 위한 추가적인 설정이나 네트워크 보안 대책이 필요합니다.
  4. 단일 스레드 제한: Redis의 대부분의 작업은 단일 스레드에서 실행됩니다. 이는 고성능을 제공하지만, 멀티 코어 서버에서는 CPU 자원을 충분히 활용하지 못할 수 있습니다.

'Backend' 카테고리의 다른 글

Docker 란?  (1) 2024.04.18

댓글


반갑습니다 ✿ڿڰۣ— 조은하루 ^^
SSAFY 9기 김웅서 티스토리