[REDIS] 레디 스 데이터 구조 공간 요구 사항
REDIS레디 스 데이터 구조 공간 요구 사항
레디 스의 정렬 된 세트와 목록 사이 공간에서의 차이점은 무엇입니까? 내 생각 엔 정렬 된 세트는 균형 이진 트리의 어떤 것을, 그리고 목록은 링크 된 목록입니다. 이 방법은 내가 그들 각각 인코딩하고있어 그 세 값의 상단에, 키, 내가 함께로 찾으면됩니다하지만 점수와 LinkedList의 가치, 가치 점수 것을, 오버 헤드는 LinkedList의 요구는 하나의 트랙을 유지하는 것입니다 다른 노드, 상기 이진 트리의 요구는 정렬 된 세트를 사용하여 공간 오버 헤드가 O (N)이다 그래서, 두 개의 트랙을 유지한다.
단일 노드의 공간 오버 헤드가 33 % 인 64 비트 컴퓨터에서 4 걷고 3 걷고에서 이동처럼 내 값 경우 모두 걷고 있고, 다른 노드에 대한 포인터도 걷고있다 점수 것 같습니다 공간에 증가한다.
이 사실인가요?
해결법
-
==============================
1.그것은 당신의 추정보다 훨씬 더 많은 것이다. 하자 가정하자 ziplists은 (즉, 당신이 항목의 상당수가) 사용되지 않습니다.
그것은 당신의 추정보다 훨씬 더 많은 것이다. 하자 가정하자 ziplists은 (즉, 당신이 항목의 상당수가) 사용되지 않습니다.
항목 당 3 포인터 (이전, 다음, 값), • 레디 스리스트는 고전적인 이중 연결리스트이다.
소트 세트는 사전 플러스 스킵 목록입니다. 사전에, 상품 잘 (키 값 옆)으로 3 포인터를 저장한다. 스킵리스트 메모리 공간 평가할 더 복잡하다 : 각각의 노드는 한 번 (점수), 2- 포인터 (후진 OBJ)를 얻어, 플러스 N 1-32 대부분의 항목 사이의 n 쌍 (포인터 스팬 값)만을 1 걸릴 2 커플.
그것이 ziplist로 표시되지 않은 경우 즉, 정렬 된 세트의 가장 오버 헤드까지 레디 스 데이터 구조이다. 리스트에 비해 메모리가 오버 200 % 이상 (즉, 3 배)이다.
참고 : 레디 스와 메모리 사용량을 평가하는 가장 좋은 방법은 큰 목록을 작성하거나 메모리 풋 프린트를 얻기 위해 의사 데이터와 사용 정보와 소트 세트 시도하는 것입니다.
from https://stackoverflow.com/questions/12269429/redis-data-structure-space-requirements by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 노드 / 레디 스 및 콜백와 제어 흐름 문제? (0) | 2020.01.20 |
---|---|
[REDIS] 어떤 명령이나 LUA 스크립트를 사용하여 레디 스에 저장된 여러 설정을 읽는 방법 (0) | 2020.01.20 |
[REDIS] 데이터베이스로 Yii2 + 레디 스 (0) | 2020.01.20 |
[REDIS] 레디 스 "클라이언트 목록"목적과 설명 (0) | 2020.01.20 |
[REDIS] AWS-elasticache에 memcached를 나 레디 스 사용 (0) | 2020.01.20 |