Post

(TIL) 2024-12-12

(TIL) 2024-12-12

Redis


레디스(Redis)는 메모리 기반의 데이터 저장소이다. 키-밸류(key-value) 데이터 구조에 기반한 다양한 형태의 자료 구조를 제공.
(일반적인 RDB들은 DISK에 데이터를 저장)

장점

  1. 빠른 처리 속도
    • 메모리에 데이터를 관리하므로 매우 빠른 속도로 데이터를 저장 및 조회할 수 있다.
  2. 데이터 구조
    • Redis는 다양한 데이터 구조를 지원하므로, String, List, Hash, Set 등을 통해 데이터를 쉽게 처리할 수 있다.

단점

  1. 저장 공간 제약
    • 메모리 용량이 부족한 경우 데이터를 저장 및 처리에 문제가 발생한다.
  2. 싱글 스레드
    • 오버헤드가 큰 명령어를 처리하는 동안 다른 명령어를 처리 불가하기에 응답 속도에 저하가 발생한다. (반대로 싱글스레드 이기에 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.