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의 사용 사례
- 캐싱
- 채팅, 메시징 및 대기열
- 랭킹 보드(순위표)
- 인증 토큰 저장(세션 스토어)
- 다양한 미디어 스트리밍
- 실시간 분석
- 위치기반 데이터 타입 사용
'데이터베이스(DB: Database) > Redis' 카테고리의 다른 글
[Redis] 윈도우10 환경에서 레디스 설치하기 (0) | 2023.02.11 |
---|