데이터베이스(DB: Database)/Redis

[Redis] 레디스란 무엇인가? - 특징, 장단점, 사용 사례

잇트루 2023. 2. 10. 16:13
반응형

Redis란?

Redis는 Remote Dictionary Server의 약자로 키(Key) - 값(Value) 쌍의 해시 맵과 같은 구조를 가진 비관계형(NoSQL) 데이터베이스 관리 시스템(DBMS)이다.

Redis는 오픈 소스 기반으로 인-메모리(In-memory) 데이터 구조 저장소로 메모리에 데이터를 저장한다.

 

따라서 별도의 쿼리문이 필요로 하지 않고, 인-메모리에 저장되기 때문에 상당히 빠른 속도로 처리할 수 있다.

 

 

Redis의 특징 및 장단점

1. 성능

모든 Redis 데이터는 메모리에 저장되어 대기 시간을 낮추고 처리량을 높인다.

평균적으로 읽기 및 쓰기의 작업 속도가 1ms로 디스크 기반 데이터베이스보다 빠르다.

 

2. 유연한 데이터 구조

Redis의 데이터는 String, List, Set, Hash, Sorted Set, Bitmap, JSON 등 다양한 데이터 타입을 지원한다.

따라서, 애플리케이션의 요구 사항에 알맞은 다양한 데이터 타입을 활용할 수 있다.

 

3. 개발 용이성

Redis는 쿼리문이 필요로 하지 않으며, 단순한 명령 구조로 데이터의 저장, 조회 등이 가능하다.

또한, Java, Python, C, C++, C#, JavaScript, PHP, Node.js, Ruby 등을 비롯한 다수의 언어를 지원한다.

 

4. 영속성

Redis는 영속성을 보장하기 위해 데이터를 디스크에 저장할 수 있다. 서버에 치명적인 문제가 발생하더라도 디스크에 저장된 데이터를 통해 복구가 가능하다.

 

5. 싱글 스레드 방식

Redis는 싱글 스레드 방식을 사용하여 한 번에 하나의 명령어만을 처리한다. 따라서 연산을 원자적으로 처리하여 Race Condition(경쟁 상태)가 거의 발생하지 않는다.

하지만, 멀티 스레드를 지원하지 않기 때문에 시간 복잡도가 O(n)인 명령어의 사용은 주의해서 사용해야 한다.

 

 

Redis의 사용 사례

  • 캐싱
  • 채팅, 메시징 및 대기열
  • 랭킹 보드(순위표)
  • 인증 토큰 저장(세션 스토어)
  • 다양한 미디어 스트리밍
  • 실시간 분석
  • 위치기반 데이터 타입 사용
반응형