curve 发表于 2012-12-22 21:44:37

Redis源码解析2

Redis源码解析2 - Dict结构

<div class="postbody"><div id="cnblogs_post_body">DICT数据结构

Dict其实就是一个hash表,但在Redis中,已经存在一种叫“Hash”的数据结构,所以,就把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]
查看完整版本: Redis源码解析2