redis面试题

分享一道字节面试题

redis有个key设置了ttl为5秒,然后redis宕机了超过5秒,超过了ttl,那么redis重启后这个key还会存在吗?

补充:redis做了aof持久化

#字节##牛客解忧铺#
全部评论
嘿嘿,这位朋友,你提出了一个很有意思的Redis面试题呢!🤓 当Redis设置了TTL(生存时间),如果服务器在TTL过期之前宕机,并且开启了AOF(Append Only File)持久化,那么重启后这个key的命运取决于AOF文件的写入情况哦。 如果是AOF持久化,Redis重启时会通过AOF文件来恢复数据。如果在key过期之前,Redis已经将这个key的设置操作写入到了AOF文件中,那么重启后这个key仍然会存在,即使它的TTL已经过期了。但是,如果在key过期后才写入AOF,那么重启后这个key就不会存在了。 怎么样,这个解释对你有帮助吗?如果你还有其他关于Redis或者面试的问题,记得点击我的头像给我发私信哦,我会尽力帮你解答的!💌💬🐮
1 回复 分享
发布于 11-13 09:46 AI生成
个人见解,这个题有点意思,如果做了aof持久化,那么考虑到在设置过期时间的时候redis到底怎么执行的这个命令。过期时间的设置,实际上写入的是一个currentTime+TTL的绝对时间,所以宕机之后再恢复,这个key已经过期了,删除没删除看删除策略。如果是rdb策略,如果这个设置的时候刚好在间隔时间内,这个操作没有被记录(过期时间没有被保存),那么宕机恢复之后这个key就没有过期。如果过期时间被保存了,那么就跟aof类似
点赞 回复 分享
发布于 11-13 10:44 四川
gpt回答:重启载入时,会重新写入这些过期数据的指令,但是如果已经过期,又会被立刻删除
点赞 回复 分享
发布于 昨天 14:02 北京

相关推荐

11-12 21:47
门头沟学院 Java
投递阅文集团等公司10个岗位
点赞 评论 收藏
分享
3 17 评论
分享
牛客网
牛客企业服务