Redis 디자인 및 구현 - 04 - 사전
3778 단어 독서 노트
해시 시계
typedef struct dictht{
//
dictEntry **table;
//
unsigned long size;
// , , size - 1
unsigned long sizemask;
//
unsigned long used;
}dictht;
// dictEntry
typedef struct dictEntry {
//
void *key;
//
union {
void *val;
uint64_t u64;
int64_t s64;
} v;
// , ,
struct dictEntry *next;
}dictEntry;
자전.
typedef struct dict {
// , dictType ,Redis 。
dictType *type;
// , 。
void *privdata;
// , ht[0], ht[0] rehash ht[1]
dictht ht[2];
// rehash , rehash ; rehash , -1
int rehashidx;
} dict;
typedef struct dictType {
// hash
unsigned int (*hashFunction)(const void *key);
//
void *(*keyDup)(void *privdata, const void *key);
//
void *(*valDup)(void *privdata, const void *obj);
//
void *(*keyDestructor)(void *privdata, const void *key);
//
void *(*valDestructor)(void *privdata, const void *obj);
//
int (*keyCompare)(void *privdata, const void *key1, const void *key2);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로그'메타프로그램 루비 버전 2'3장 읽기동적 방법 Object#send 호출 방법은 약간 메모와 Object#send obj.send(:my_method, 3) Object#send를 사용하면 어떤 방법으로든 호출할 수 있습니다. privete 방법을 호...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.