Redis 面试宝典之 Redis 如何处理已经过期的数据?

本文讲的是 Redis 的键值过期之后的 数据处理 ,讲的是正常情况下的 数据清理 ,但面试者常常会把两个概念搞混,以至于和期望的工作失之交臂。我们本文的职责之一就是帮读者朋友搞清楚二者的区别,相信看完本文你就会对二者的概念有一个本质上的认识。

我们本文的面试题是,Redis 如何处理已过期的数据?

在 Redis 中维护了一个过期字典,会将所有已经设置了过期时间的键值全部存储到此字典中,例如我们使用设置过期时间的命令时,命令如下:

此命令表示 5s 之后键值为 mykey:java 的数据将会过期,其中 ex 是 expire 的缩写,也就是过期、到期的意思。

过期时间除了上面的那种字符类型的直接设置之外,还可以使用 expire key seconds 的方式直接设置,示例如下:

获取键值的执行流程是,当有键值的访问请求时 Redis 会先判断此键值是否在过期字典中,如果没有表示键值没有设置过期时间(永不过期),然后就可以正常返回键值数据了;如果此键值在过期字典中则会判断当前时间是否小于过期时间,如果小于则说明此键值没有过期可以正常返回数据,反之则表示数据已过期,会删除此键值并且返回给客户端 nil ,执行流程如下图所示:

这是键值数据的方法流程,同时也是过期键值的判断和删除的流程。

本文的面试题考察的是你对 Redis 的过期删除策略的掌握,在 Redis 中为了平衡空间占用和 Redis 的执行效率,采用了两种删除策略,上面的回答不完全对,因为他只回答出了一种过期键的删除策略,和此知识点相关的面试题还有以下这些:

常见的过期策略,有以下三种:

扩展阅读:redis面试必会6题经典 ... spring cloud ... redis面试题大全 ... java基础面试题 ... spring mvc ... redis cluster ... 几率大的redis面试题 ... redis 缓存穿透 击穿 雪崩 ... redis面试题2024 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网