Redis源码解析2
Redis源码解析2 - Dict结构<div class="postbody"><div id="cnblogs_post_body">DICT数据结构
Dict其实就是一个hash表,但在Redis中,已经存在一种叫&ldquo;Hash&rdquo;的数据结构,所以,就把Hash表改名成Dict吧。。。
Dict是Redis进行键值处理的灵魂,不管多大的数据量,始终维持O(1)的时间复杂度(排除bucket下链表很长的情况)
全局保存的所有key,都存在于一个Dict中
而且别的数据结构,比如set、hash也可能会用到Dict
Dict实现于 dict.hdict.c 两个文件中
其类型定义如下图:
http://pic002.cnblogs.com/images/2012/352836/2012091416122240.png
1. dict:表示一个独立的dict结构,提供给外部使用
<div class="cnblogs_code">1 typedef struct dict {2 dictType *type;// 定义了元素操作的回调函数3 void *privdata;4 dictht ht[2]; // 每个dict有两个dictht结构,一个是主操作对象,一个是辅助操作对象,在Rehash时进行数据转移5 int rehashidx; /* rehashing not in progress if rehashidx == -1 */6 int iterators; /* number of iterators currently running */7 } dict;
页:
[1]