AOF丶RDB对过期键的处理

RDB

1.生成RDB文件

执行SAVE或者BGSAVE命令创建一个新的RDB文件时,程序会对数据库中的键进行检查,已经过期的键不会保存到新创建的RDB文件中.

2.载入RDB文件

启动Redis服务器,如果开启了RDB功能,那么服务器将会对RDB文件进行载入

    服务器以主服务器模式运行: 程序会对文件中保存的键进行检查,过期的键不会被载入到数据库 服务器以从服务器模式运行: 载入RDB文件时,文件中所有的键,无论是否过期都会被载入数据库.

不过,因为主从服务器在进行数据同步的时候,从服务器的数据库会被清空,所以,一般来讲,过期键对载入RDB文件的从服务器也不会造成影响.

AOF

1.AOF文件写入

redis服务器以AOF持久化模式运行时,如果数据库中的某个过期的键还没有被惰性删除或定期删除,那么AOF文件不会因为这个过期键产生任何影响.

当过期键被惰性删除或者定期删除以后,程序会向AOF文件追加一条DEL命令,显式地记录该键已经被删除

2.AOF重写

和RDB文件创建类似,AOF在重写时也会检查键是否过期,不会将过期的键保存到重写后的AOF文件中

经验分享 程序员 微信小程序 职场和发展