每天一个开发小知识
本文为《Redis设计与实现》学习笔记
开局一张图
上图为Redis字典的数据结构
字典是Redishash的底层实现之一
字典(dict)的数据结构
typedefstructdict{dictType*type;void*privdata;dicththt[2];inttrehashidx;}dict;
其中
type:dictType保存了一簇用于操作特定类型键值对的函数
privdata:保存需要传给那些类型特定函数的可选参数
ht:指向哈希表,双buf结构,用于rehash操作
trehashidx:rehash标识,当值为-1时表示目前没有进行rehash
哈希表(dictht)的数据结构
typedefstructdictht{dictEntry**table;unsignedlongsize;unsignedlongsizemask;unsignedlongused;}dicthth;
其中
table:数组,元素为指向哈希表节点的指针
size:table数组的大小
sizemask:掩码,值为size-1,用于计算key在table中的下标
used:table中含有的哈希表节点数量
哈希表节点(dictEntry)的数据结构
typedefstructdictEntry{void*key;union{void*val;uint64_tu64;int64_ts64;}v;structdictEntry*next;}dictEntry;
其中
key:键
v:值
next:指向下一个哈希表节点,用于解决hash冲突
每天一个开发小知识,今天你学废了吗?
预览时标签不可点收录于话题#个上一篇下一篇