字典是如何实现的?Rehash 了解吗?

字典是 Redis 服务器中出现最为频繁的复合型数据结构。除了 hash 结构的数据会用到字典外,整个 Redis 数据库的所有 key 和 value 也组成了一个 全局字典,还有带过期时间的 key 也是一个字典。(存储在 RedisDb 数据结构中)
字典结构是什么样的呢?
Redis 中的字典相当于 HashMap,内部实现也差不多类似,采用哈希与运算计算下标位置;通过 “数组 + 链表” 的链地址法 来解决哈希冲突,同时这样的结构也吸收了两种不同数据结构的优点。
字典是怎么扩容的?
字典结构内部包含 两个 hashtable,通常情况下只有一个哈希表 ht[0] 有值,在扩容的时候,把ht[0]里的值rehash到ht[1],然后进行 渐进式rehash ——所谓渐进式rehash,指的是这个rehash的动作并不是一次性、集中式地完成的,而是分多次、渐进式地完成的。
待搬迁结束后,h[1]就取代h[0]存储字典的元素。

最近更新

  1. TCP协议是安全的吗?

    2024-05-14 05:04:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-14 05:04:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-14 05:04:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-14 05:04:04       18 阅读

热门阅读

  1. Rust语言中带标签的`break`用法

    2024-05-14 05:04:04       13 阅读
  2. 【C】每日一题 53 最大子数组和

    2024-05-14 05:04:04       9 阅读
  3. Excel中的`MMULT`函数

    2024-05-14 05:04:04       10 阅读
  4. Spring事务深度解析

    2024-05-14 05:04:04       12 阅读
  5. redis运维

    2024-05-14 05:04:04       13 阅读
  6. 23种设计模式(软考中级 软件设计师)

    2024-05-14 05:04:04       10 阅读
  7. .gitignore 文件的说明文档

    2024-05-14 05:04:04       11 阅读
  8. day5 qt

    day5 qt

    2024-05-14 05:04:04      15 阅读
  9. 重构四要素:目的、对象、时机和方法

    2024-05-14 05:04:04       14 阅读