Redis 面试宝典之 Redis 如何处理已经过期的数据?
1个回答
展开全部
本文讲的是 Redis 的键值过期之后的 数据处理 ,讲的是正常情况下的 数据清理 ,但面试者常常会把两个概念搞混,以至于和期望的工作失之交臂。我们本文的职责之一就是帮读者朋友搞清楚二者的区别,相信看完本文你就会对二者的概念有一个本质上的认识。
我们本文的面试题是,Redis 如何处理已过期的数据?
在 Redis 中维护了一个过期字典,会将所有已经设置了过期时间的键值全部存储到此字典中,例如我们使用设置过期时间的命令时,命令如下:
此命令表示 5s 之后键值为 mykey:java 的数据将会过期,其中 ex 是 expire 的缩写,也就是过期、到期的意思。
过期时间除了上面的那种字符类型的直接设置之外,还可以使用 expire key seconds 的方式直接设置,示例如下:
获取键值的执行流程是,当有键值的访问请求时 Redis 会先判断此键值是否在过期字典中,如果没有表示键值没有设置过期时间(永不过期),然后就可以正常返回键值数据了;如果此键值在过期字典中则会判断当前时间是否小于过期时间,如果小于则说明此键值没有过期可以正常返回数据,反之则表示数据已过期,会删除此键值并且返回给客户端 nil ,执行流程如下图所示:
这是键值数据的方法流程,同时也是过期键值的判断和删除的流程。
本文的面试题考察的是你对 Redis 的过期删除策略的掌握,在 Redis 中为了平衡空间占用和 Redis 的执行效率,采用了两种删除策略,上面的回答不完全对,因为他只回答出了一种过期键的删除策略,和此知识点相关的面试题还有以下这些:
常见的过期策略,有以下三种:
我们本文的面试题是,Redis 如何处理已过期的数据?
在 Redis 中维护了一个过期字典,会将所有已经设置了过期时间的键值全部存储到此字典中,例如我们使用设置过期时间的命令时,命令如下:
此命令表示 5s 之后键值为 mykey:java 的数据将会过期,其中 ex 是 expire 的缩写,也就是过期、到期的意思。
过期时间除了上面的那种字符类型的直接设置之外,还可以使用 expire key seconds 的方式直接设置,示例如下:
获取键值的执行流程是,当有键值的访问请求时 Redis 会先判断此键值是否在过期字典中,如果没有表示键值没有设置过期时间(永不过期),然后就可以正常返回键值数据了;如果此键值在过期字典中则会判断当前时间是否小于过期时间,如果小于则说明此键值没有过期可以正常返回数据,反之则表示数据已过期,会删除此键值并且返回给客户端 nil ,执行流程如下图所示:
这是键值数据的方法流程,同时也是过期键值的判断和删除的流程。
本文的面试题考察的是你对 Redis 的过期删除策略的掌握,在 Redis 中为了平衡空间占用和 Redis 的执行效率,采用了两种删除策略,上面的回答不完全对,因为他只回答出了一种过期键的删除策略,和此知识点相关的面试题还有以下这些:
常见的过期策略,有以下三种:
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
壹寰(深圳)科技文化有限公司
2021-03-27 广告
2021-03-27 广告
不同公司提供的方案也不一样。以上回答如果还觉得不够详细,可以来咨询下壹寰(深圳)科技文化有限公司。91数据恢复是壹寰(深圳)科技文化有限公司旗下专业数据恢复品牌,91数据恢复专注于勒索病毒数据恢复、勒索病毒数据修复、数据库修复、数据库解密恢...
点击进入详情页
本回答由壹寰(深圳)科技文化有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询