1、RDB对过期键的处理机制
- 持久化时已过期的键不会保存到新生成的rdb文件中;
- redis服务器(主服务器)启动时,载入持久化的数据到内存时,已过期的键不会载入到内存;
- redis服务器(从服务器)启动时,载入持久化的数据到内存时,已过期的键也会载入到内存,但是当与主服务器进行数据同步时,从服务器的数据会被清空
- 综上所述不管是写入rdb文件还是读取rdb文件的数据过期键都是无效的。
2、AOF对过期键的处理机制
- 因为aof保存的操作命令,所以键的读写操作命令都会被保存在aof文件中,当键过期时,通过惰性删除或者定时删除之后,aof会保存相应的删除命令,显式记录该键已经被删除。
- redis服务器通过aof文件方式将持久化数据load到内存时,遇到过期键的处理机制和rdb方式将持久化数据load到内存时的处理方式一样。
- 综上所述不管时写入aof文件还是读取aof文件的数据过期键都是无效的。
3、复制功能对过期键的处理机制
- 当服务器运行在复制模式下,从服务器的过期键的删除动作有主服务器控制;
- 主服务器在删除一个过期键之后,会显式的向所有从服务器发送一条DEL命令,告知从服务器删除这个过期键
- 从服务器在处理客户端发送过来的查询命令时,即使碰到过期键也不会将过期键删除,而是像处理未过期键一样来处理这个过期键
- 从服务器只有在接收到主服务器发送过来的删除命令之后,才会删除过期键。
网友评论