Redis中哈希表的负载因子

最近在看Redis的设计与实现,在字典那一章的哈希表的扩展与收缩一小节中,让我产生了一下疑问。原文是这样的。

在这里面,我再次看到了这个词,负载因子。而且貌似和我之前看到的HashMap中的有一些区别。

负载因子,在学习HashMap时会学到,设置一个合适的负载因子,可以有效的避免哈希碰撞,负载因子太大了会有很高的哈希冲突概率,降低查询速度,而太小了则会导致频繁扩容。而在前人的一些科学计算下,将其设置为了比较合适的0.75

而Redis中,哈希表的扩展和搜索是这样决定的

当以下条件中的任意一个被满足时,程序会自动开始对哈希表执行扩展操作:

1)服务器目前没有在执行BGSAVE命令或者BGREWRITEAOF命令,并且哈希表的负载因子大于等于1。
2)服务器目前正在执行BGSAVE命令或者BGREWRITEAOF命令,并且哈希表的负载因子大于等于5。

另一方面,当哈希表的负载因子小于0.1时,程序自动开始对哈希表执行收缩操作。

BGSAVE:Redis Bgsave 命令用于在后台异步保存当前数据库的数据到磁盘。

BGREWRITEAOF:Redis Bgrewriteaof 命令用于异步执行一个 AOF(AppendOnly File)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值