(TIL) 2024-12-12
(TIL) 2024-12-12
Redis
레디스(Redis)는 메모리 기반의 데이터 저장소이다. 키-밸류(key-value) 데이터 구조에 기반한 다양한 형태의 자료 구조를 제공.
(일반적인 RDB들은 DISK에 데이터를 저장)
장점
- 빠른 처리 속도
- 메모리에 데이터를 관리하므로 매우 빠른 속도로 데이터를 저장 및 조회할 수 있다.
- 데이터 구조
- Redis는 다양한 데이터 구조를 지원하므로, String, List, Hash, Set 등을 통해 데이터를 쉽게 처리할 수 있다.
단점
- 저장 공간 제약
- 메모리 용량이 부족한 경우 데이터를 저장 및 처리에 문제가 발생한다.
- 싱글 스레드
- 오버헤드가 큰 명령어를 처리하는 동안 다른 명령어를 처리 불가하기에 응답 속도에 저하가 발생한다. (반대로 싱글스레드 이기에 Dead lock 같은 현상이 발생하지 않는 장점도 있다.)
자료구조
- Strings
- Vinary-safe한 기본적인 key-value 구조
- Lists
- String element의 모음, 순서는 삽입된 순서를 유지하며 기본적인 자료구로 Linked List를 사용
- Sets
- 유일한 값들의 모임인 자료구조, 순서는 유지되지 않음
- Sorted sets
- Sets 자료구조에 score라는 값을 추가로 두어 해당 값을 기준으로 순서를 유지
- Hahses
- 내부에 key-value 구조를 하나더 가지는 Reids 자료구조
- Bit arrays(bitMaps)
- bit array를 다를 수 있는 자료구조
- HyperLogLogs
- HyperLogLog는 집합의 원소의 개수를 추정하는 방법, Set 개선된 방법
- Streams
- Redis 5.0 에서 Log나 IoT 신호와 같이 지속적으로 빠르게 발생하는 데이터를 처리하기 위해서 도입된 자료구조
This post is licensed under CC BY 4.0 by the author.