栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Redis dbsize命令的准确性

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redis dbsize命令的准确性

我想说这与密钥到期有关。

键/值存储(例如Redis或memcached)无法为每个要过期的对象定义物理计时器。他们太多了。取而代之的是,他们定义一个数据结构以轻松跟踪要过期的项目,并将所有过期事件多路复用到单个物理计时器。他们还倾向于实施惰性策略来处理这些事件。

使用Redis,当某项过期时,什么也不会发生。但是,在访问每个项目之前,系统地进行检查以避免返回过期的项目,并有可能删除该项目。在此惰性策略的基础上,每100毫秒触发一次清除算法,以使许多项目实际失效(即从主词典中删除它们)。每次迭代中考虑的键的数量取决于到期工作量(算法是自适应的)。

结果是,当您有稳定的到期事件流时,Redis可能会积压要在给定时间点到期的项目。

现在回到问题所在,DBSIZE命令仅返回主字典的大小,因此它包括尚未删除的过期项目。KEYS命令遍历整个词典,访问各个键,因此它排除了所有过期的项目。因此,项目数可能不匹配。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/371576.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号