看了很多文章介绍 主键失效机制的,主要是通过配置失效淘汰策略(LRU/TTL/RADMON 针对 volatile 和 全局 key 的)和失效策略(消极方法+积极方法)。
我有个疑问,官方介绍 key 的 expire 方法的时候(可以戳这里)说2.6版本之后可以达到0-1毫秒的延迟。
但是失效策略最高效的情况下(配置:volatile-ttl),当所有的失效 key 都放在 dict 里面去处理超时销毁时,失效策略的执行是1/10秒执行一次(100毫秒),怎么就能达到官方说的0-1毫秒呢?是不是我哪里理解有误呢?
介绍失效机制:
http://blog.nosqlfan.com/html...
https://yq.aliyun.com/article...
介绍 expire:
http://redis.cn/commands/expi...
很简单,「过期」!=「删除」。
过期精度的提升,我估计主要还是由于 pexpire 命令的引入带来的。之前记录的 ttl 应该只有秒级精度,所以过期精度也就那样了。
Redis 肯定没有办法保证在 1ms 内删除所有已过期的 key,但是它可以保证你不会看到过期超过 1ms 的 key。