首页 > 解决方案 > 为什么 dict_force_resize_ratio 在 redis 中默认为 5?

问题描述

为什么dict_force_resize_ratio在 redis/dict.c 中默认为5 ?

标签: redis

解决方案


这是一个启发式,没有正确或错误的答案。

dict_force_resize_ratio是字典中元素的数量与大小(也就是桶数)之间的比率。通常,只要这个比率为 1,redis 就会调整哈希表的大小。

但是,如果关闭调整大小并且字典继续增长。在某一时刻,它会退化为一个数组,时间复杂度会变成 O(n)。通过将上限设为 5,redis 确保哈希表性能不会降低到 O(n)。


推荐阅读