标签:
第七课时作业
静哥
by 2016.4.5~2016.4.10
【作业描述】
1.解释redis数据库是怎么扩容的?
2.用几句话描述sds结构和压缩列表
【作业-1:解释redis数据库是怎么扩容的】
Redis数据库是使用字典作为底层实现的,对数据库的增删改查操作也是构建在对字典的操作之上。因此,redis数据库的扩容本质上就是字典的扩容。
Redis数据库是使用字典作为底层实现的;而字典使用哈希表作为底层实现;哈希表则可以由多个哈希表节点构成;哈希表节点里保存字典中的一个键值对。
哈希表节点使用dictEntry结构表示,每个dictEntry结构都保存着一个键值对;


![3H4)0XFC8T6[K3]P}BVF28A 技术分享](http://image.mamicode.com/info/201610/20180110212811395684.png)


3、字典(dict)
![{J]T$WLT20(64$_IY8_LAQG 技术分享](http://image.mamicode.com/info/201610/20180110212811438654.png)
Type属性和privdata属性是针对不同类型的键值对,为创建多态字典而设置的;

![]9SZU[$S]0T$5M6O~PMC}}8 技术分享](http://image.mamicode.com/info/201610/20180110212811463069.png)
二、对哈希算法的学习和理解
1、redis程序根据键值对的键,计算出哈希值和索引值,然后根据索引值将包含键值对的哈希表节点放到哈希表数组的指定索引上;
以下是,redis计算哈希值和索引值的方法:




![UIH4]5DGYS19ABZW~VU56SR 技术分享](http://image.mamicode.com/info/201610/20180110212811508969.png)

![(C]6D@SK0$ALF56IJP)1X%X 技术分享](http://image.mamicode.com/info/201610/20180110212811534361.png)



![CAB}072X~J]MSXR8$LQW}VL 技术分享](http://image.mamicode.com/info/201610/20180110212811581238.png)
【作业-2:用几句话描述sds结构和压缩列表】


标签:
原文地址:http://www.cnblogs.com/cjing2011/p/ee05b546903da57effe4ec120df048b7.html