Redis 字典

  • A+
所属分类:工具使用

Redis 字典

字典

dictht 是一个散列表结构,使用拉链法解决哈希冲突

字典dict定义:

dict内部包含两个哈希表dictht,主要是为了方便rehash操作。在扩容时,将其中一个 dictht 上的键值对 rehash 到另一个 dictht 上面,完成之后释放空间。

Redis的rehash操作时渐进式的,不是一次性的,主要是为了避免给服务器带来很大的压力。

渐进式 rehash 通过记录 dict 的 rehashidx 完成,它从 0 开始,然后每执行一次 rehash 都会递增。例如在一次 rehash 中,要把 dict[0] rehash 到 dict[1],这一次会把 dict[0] 上 table[rehashidx] 的键值对 rehash 到 dict[1] 上,dict[0] 的 table[rehashidx] 指向 null,并令 rehashidx++。

在 rehash 期间,每次对字典执行添加、删除、查找或者更新操作时,都会执行一次渐进式 rehash。

采用渐进式 rehash 会导致字典中的数据分散在两个 dictht 上,因此对字典的查找操作也需要到对应的 dictht 去执行。

 

LTXU
  • 版权声明:本站原创文章,于2020年1月16日14:01:08,由 发表,共 591 字。
  • 转载请注明:Redis 字典 | AICSDN

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: