1.包括三个结构体:字典结构体+哈希表结构体+哈希节点结构体

3.redis设计与实现--字典

2.如何解决哈希冲突?

答:redis使用的是链地址法来解决哈希冲突的,每个链表节点有一个next指针,最新加入的节点会放在链表的头部。

3.怎么进行rehash?

答:当达到扩容条件时(正常情况下负载因子为1时进行扩容,当服务器正在执行GBSAVE和GBREWRITE等时,负载因子为5时才扩容)或者缩小时(负载因子为0.1)就会进行rehash操作;

为了不对服务器造成太大影响,使用渐进式rehash进行操作,把h[0]中的元素一个一个重新rehash到h[1],然后再删除h[0],再把h[1]重新命名为h[0],再新建h[0],以供下次rehash使用。

相关文章:

  • 2021-12-29
  • 2021-12-07
  • 2022-12-23
  • 2022-12-23
  • 2021-10-07
  • 2021-08-06
  • 2021-09-26
  • 2021-05-23
猜你喜欢
  • 2021-04-23
  • 2021-07-20
  • 2021-07-25
  • 2021-10-03
  • 2021-05-30
  • 2022-01-05
  • 2021-10-31
相关资源
相似解决方案