您的位置:首页 > 理论基础 > 数据结构算法

Redis内部数据结构总结(2)dict

2016-11-04 14:41 316 查看
     dict是redis一个非常重要的基础数据结构,dict用来维护key和value映射关系的数据结构,与很多语言中的Map或者dictionary类似。

         redis的一个database中所有key到value的映射,就是一个dict来维护的。

另外,当redis中的hash结构数据较多时,hash的底层会从ziplist转为dict

当redis中的sorted set 数据较多时,sorted set的底层从ziplist转为dict+ skiplist。

         基于哈希表的查找性能非常高效,redis中,dict采用哈希算法从key计算得到在哈希表中的位置,采用拉链法解决冲突,并在装载因子到达阈值时自动扩展内存,引发重哈希。

         reids的dict的非常重要的一个特点是它的重哈希,dict的重哈希是一种增量式重哈希,在需要扩展内存的时候避免一次性对所有key进行重哈希,而是将重哈希操作分散到对于dict的各个增删改查操作中去。这种方法能做到每次只对一小部分key进行重哈希,而每次重哈希之间不影响dict的操作。这种设计避免了重哈希期间单个请求的响应时间剧烈增加。

         为了增量重哈希,dict的数据结构里包含两个哈希表。在重哈希期间,数据从第一个哈希表向第二个哈希表迁移。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: