[Redis] Redis란?
DB

[Redis] Redis란?

728x90

Redis란 인메모리(in-memory) 데이터 구조를 가진 저장소입니다.

네 Redis는 디스크(Disk)가 아니라 메모리(RAM)에 모든 데이터를 저장하고 조회합니다!

 

일반 RDB말고 인메모리 데이터 구조 저장소를 사용하는 이유는 뭔가요??

일반적으로 RDB는 데이터를 물리적으로 디스크에 직접 쓰는 형식입니다. 이로인해 데이터가 서버에 문제가 생겨도 데이터가 직접적으로 손상이 되지 않는다는 장점이 있지만, 읽고 쓰는 과정이 메모리에서 불러오는 것에 비해 훨씬 느립니다.

따라서 빠르게 데이터를 읽고 쓰는 캐시 서버로 사용하기 위해 Redis를 사용합니다.

캐시는 한번 읽어온 데이터를 임의의 공간에 저장하여 다음에 읽을 때는 빠르게 결괏값을 받을 수 있도록 도와주는 공간입니다. 같은 요청이 여러 번 들어오는 경우 매번 데이터 베이스를 거치는 것이 아니라 캐시 서버에서 첫 번째 요청 이후 저장된 결괏값을 바로 내려주기 때문에 DB의 부하를 줄이고 서비스의 속도도 느려지지 않는 장점이 있습니다.

 

Redis 자료구조

  • 기본
    • String: 단순히 Key/Value 형태로 값을 저장합니다.
    • Set: 집합형 Data Type으로 정렬되지 않고 중복되지 않는 데이터를 저장합니다. 집합형 자료형이기 때문에 합집합, 교집합, 차집합과 같은 연산도 가능합니다.
    • Sorted Set: Set 자료구조와 다르게 value 값을 score 기준으로 정렬합니다.
    • List: List 자료구조는 Linked List 형태여서 lpush, rpush 같은 List에 오른쪽과 왼쪽에 데이터를 저장할 수 있습니다. 그리고 Set과 다르게 중복된 데이터를 저장할 수 있습니다.
    • Hash: 객체를 저장하는 방식처럼 key 하나에 여러개의 field와 value가 존재합니다
  • 심화
    • Bit array(bitMaps): bit array를 다룰 수 있습니다
    • HyperLogLog: Set의 개선된 방법으로, 집합의 원소 개수를 추정하는 방법입니다
    • Stream: Redis 5.0 에서 Log나 IoT 신호와 같이 지속적으로 빠르게 발생하는 데이터를 처리하기 위해서 도입된 자료구조입니다

 

출처:
- Redis란? 레디스의 기본적인 개념 (인메모리 데이터 구조 저장소)
- [Redis] 자료구조 개념 및 사용법
728x90

'DB' 카테고리의 다른 글

[MySQL] MMM, MHA  (0) 2023.04.10
[Elastic Stack] Elasticsearch 란?  (0) 2022.10.31
[Redis] Redis Serializer 종류 (대표 3가지)  (0) 2022.10.27