실제 알고리즘 (a) 분석 레디 스 공통 데이터는 데이터 구조의 유형에 대응

실제 알고리즘 (a) 분석 레디 스 공통 데이터는 데이터 구조의 유형에 대응

달성하기 위해 기본 데이터 구조가 무엇인지 데이터베이스 레디 스의 공통 데이터 유형,?

레디 스 데이터베이스 소개

레디 스는 많은 필드, SQL 문은 쿼리 요구 사항, 레디 스의 매우 복잡성을 달성 할 수 포함, MySQL의 테이블이 더 복잡, MySQL과 같은 관계형 데이터베이스의 구조에 대하여 키 (키 - 값) 데이터베이스, 비 관계형 데이터베이스입니다 그것은 두 부분으로 만 "키", "값"을 포함, 단지 그렇게 읽고 효율성을 작성, 키 값을 조회하는 매우 높은 레디 스입니다

레디 스 주로도 저장된 데이터를 하드 디스크에 저장되는 지원 데이터가 기억되어 메모리 데이터베이스로 사용

레디 스, 키의 데이터 유형은 데이터 저장 모드, 데이터 유형 값을 많이 풍요롭게하기 위해 문자열입니다, 문자열,리스트, 사전, 세트, ​​주문 설정

목록 목록

두 방법의리스트에 대응하는 지원 데이터 세트의리스트를 저장 한리스트 ziplist 압축되고, 다른 하나는 양방향 원형 연결 목록은

작은 목록은 압축에 의해 때리스트에 저장된 데이터의 양이 필요하지만이 두 가지 조건을 충족시킬 경우 : 64 바이트 이하인 저장 한 데이터리스트를 숫자 목록 데이터는 이하의 (512)이다. 압축 데이터 저장 구조에서 배열 유사한 직접 디자인, 레디 스이며, 데이터는 데이터 저장의 다양한 크기를 허용하는 연속적인 메모리 공간에 저장된다. 메모리 저장 목록을 포장하고, 데이터 저장의 다른 유형을 지원하지만 데이터가 연속 메모리 공간에 저장되어 있기 때문에 데이터 효율의 키 높은 값 목록 형식을 통해 얻을 수

리스트에 저장된 대용량의 데이터가 필요 방법은 원형 연결리스트에 의해 달성되는 경우,리스트 구조는 별도로 제 목록 테일 포인터 및 길이 정보를 구성하는 정의

typedef struct listnode{
	struct listNode *prev;
	struct listNode *next;
	void *value;
}listNode;

typedef struct list{
	listNode *head;
	listNode *tail;
	unsigned long len;
	//……
}list;

사전 (해시)

데이터 쌍의 세트를 저장하는 사전 키를 포함하고 두 개의 각각의 데이터 쌍 사전 구현 두 종류의 1 초는 목록 해시 테이블 압축되어있다.

압축 레디 스는 두 가지 조건을 충족시켜야 사전 리스팅 구현에만 사용될 때 저장된 데이터의 소량의 경우 : 사전 저장 키 값 및 64 바이트보다 작은 하나 개의 크기는 제 2의 사전에 대한 열쇠 수가 512보다 작거나 우리는 사전을 구현하기 위해 해시 테이블을 사용할 필요가, 레디 스도 해결할 목록 방법을 사용하지만, 해시 충돌에 대한 해시 함수 MurmurHash2를 사용 레디 스 해시 알고리즘은 해시 테이블의 동적 전개를 지원 볼륨 감소

로드 팩터가 1보다 클 때 동적 데이터 증가, 해시 테이블 증가 부하율, 상기 레디 스 트리거 확장 데이터의 환원 후에, 해시 테이블이 2 배 원래 크기 확장 부하율이 0.1 미만인 경우 때 사전 데이터의 개수의 2 배의 크기로 감소 레디 스 트리거 부피 감소. 데이터 서비스의 많은 양으로 인해 정지 한 시간 이동을 방지하기 위해 일괄 적으로 데이터를 이동, 볼륨 감소 전략의 점진적 확장을 사용하여

컬렉션 (설정)

고유 데이터 세트를 저장하기위한 데이터 유형은 두 가지 방법이 있으며, 하나는 정렬 된 어레이를 기반으로 두 번째는 데이터가 다음 조건 모두에 저장되는 해쉬 테이블에 기반 할 때, 레디 스 순차적에게에 배열은 컬렉션을 저장하는 해시 테이블의 사용에 대한 데이터 유형 또는 레디 스 데이터의 집합을 구현하는

  • 저장된 데이터는 정수
  • 더 이상의 512에 저장되는 데이터 요소의 개수

정렬 된 세트의 SortedSet

데이터의 순서화 된 세트 및 각 데이터가 점수를 구비 한 세트를 저장하기위한 점프 테이블로 구성 데이터의 크기에 따라 점수가 급속 따라 점수를 지원하기 위해, 스코어 데이터 취득 구간

적은 양의 데이터 일 때, 레디 스는 정렬 된 세트의 목록을 얻기 위해 압축을 사용하면, 압축 전제 컬렉션 주문한 달성 목록을 사용

  • 모든 데이터 크기 미만 64 바이트
  • 요소의 수는 128 미만이고

영구 데이터 구조

레디 스는 인 메모리 데이터베이스로 취급하지만, 데이터가 다시 시작한 후 손실되지 않습니다 정전, 그냥 다음 하드 디스크 데이터에 저장 레디 스 다시 읽기를하는 경우 또한, 디스크 떨어져 데이터를 지원하는 하드 디스크 메모리 데이터 저장에 관하여이다 당신은 작업 메모리의 "키"와 두 부분의 "값"에서 레디 스 데이터 포맷을 계속 할 수 있고, 같은 문자열,리스트, 세트, ​​같은 값 지원 많은 데이터 유형 세트를 주문했다. 기본 해시 테이블에 사용되는 등 사전, 컬렉션, 유형, 해시 테이블 메모리의 메모리 주소를 가리키는이, 레디 스 어떻게 디스크에 특정 데이터 구조와 연관된 메모리 주소를 저장하는 포인터의 개념처럼?

데이터 구조 또는 객체 지속성 문제 공지 영구 문제 = 디스크에 영구 저장

어떻게 데이터 구조 영구 디스크?

첫째, 우리는 메모리가 다시 구성 원래의 데이터 구조에 데이터를, 레디 스는이 아이디어에 사용되는 경우 디스크에서 데이터를 복원해야하는 경우, 디스크에 저장된 데이터 만 기존의 저장 구조를 제거 할 수 있지만 데이터가 과정에서 메모리에 하드 디스크를 복원, 더 많은 시간을 소비

둘째, 디스크의 원래 포맷으로 저장된 데이터에 따라, 원래의 저장 형식을 유지한다. 우리는리스트의 사이즈를 해시 수, 각각의 데이터에 대한 정보 등의 해시 슬롯 번호가되도록 피하기 위해 이러한 정보를 디스크에 저장하는 해시 값을 재 계산

게시 75 개 원래 기사 · 원의 찬양 9 · 전망 9163

추천

출처blog.csdn.net/ywangjiyl/article/details/104893053