redis 자료구조

adam2·2021년 9월 16일
0

redis

목록 보기
1/5

Strings

binary-safe한 기본적인 key-value 구조

binary-safe?

  • vaule의 최대 길이는 512MB
  • set <key> <value>
  • append <key> <value> : 기존 value값에 이어서 붙여진다.

Lists

String element의 모음, 순서는 삽입된 순서를 유지하며 기본적인 자료구로 Linked List를 사용

  • Linked List와 유사한 형태로 데이터 저장. push, pop 동작은 O(1)이지만 특정 index조회시 O(n)
  • (rpush | rpop | lpush | lpop) <key> <element [element...]>
  • lrange <key> <start> <end>
  • sns 타임라인, redis queue

Sets

유일한 값들의 모임인 자료구조, 순서는 유지되지 않음

  • 추가, 삭제, 존재 유뮤 확인에 대해 O(1) 보장
  • sadd <key> <value [value, ...]>
  • smemebers <key>
  • 데이터가 있는지 없는지만 체크하는 용도
    • 트래킹, 모든 캐드를 나타내는 리스트
    • 특정 유저를 follow하는 목록 저장
  • Sets는 Sets간의 합집합, 차집합 등을 지원해주기 때문에 문제해결에 도움이 될 수 있습니다. ex) SINTER
  • Sets의 요소를 랜덤으로 뽑는 SPOP, SRANDMEMBER 등의 명령어가 있습니다.

Sorted sets

Sets 자료구조에 score라는 값을 추가로 두어 해당 값을 기준으로 순서를 유지

  • zadd <key> <score> <value>
  • zrank
  • zrange
  • 랭킹에 따라 순서가 바뀌길 바란다면
    • 유저 랭킹보드

Hahses

내부에 key-value 구조를 하나더 가지는 Reids 자료구조

  • key 밑에 sub-key가 존재

Bit arrays(bitMaps) : bit array를 다를 수 있는 자료구조
HyperLogLogs : HyperLogLog는 집합의 원소의 개수를 추정하는 방법, Set 개선된 방법
Streams : Redis 5.0 에서 Log나 IoT 신호와 같이 지속적으로 빠르게 발생하는 데이터를 처리하기 위해서 도입된 자료구조

ref
https://sabarada.tistory.com/134

0개의 댓글