2024-05-02  阅读(67)
版权声明:本文为博主付费文章,严禁任何形式的转载和摘抄,维权必究。 本文链接:https://www.skjava.com/mianshi/baodian/detail/8540815643

回答

Redis 提供了两种持久化方式:RDBAOF,两种持久化方式对过期键的处理方式不一样。

RDB 对过期键的处理

RDB 是 Redis 内存的快照,它保存 Redis 在某一时刻的数据状态。当在进行 RDB 持久化时,Redis 会遍历所有键的过期时间,并且不会将已经过期的键写入到 RDB 文件中。因此,在 RDB 文件中,不包含过期的键。

当 Redis 从 RDB 文件恢复时,它加载的数据是快照时刻的有效数据集,不包含过期数据。

AOF 对过期键的处理

对于过期键,AOF 的处理方式是:如果 Redis 中的某个键过期了没有被删除,AOF 文件不会有任何影响。当过期键被删除后(惰性删除和定期删除),AOF 文件后会增加一个 DEL 命令,记录该记录已被删除了。

AOF 重写过程中,Redis 会检查所有键的过期时间,它不会将已经过期的键重新写入新的AOF文件中。