- 定时删除
- 设置一个定时器,
- 保证内存尽快释放
- 占用cpu时间
- 性能消耗严重
- 惰性删除
- key过期的时候不删除,每次从数据库获取key的时候去检查是否过期,若过期,则删除,返回null。
- 不占用cpu时间
- 大量内存垃圾
- 定期删除
- 每隔一段时间执行一次删除
- 减少cpu时间占用
RDB
- 持久化key之前,检查是否过期
- 恢复数据库之前,检查是否过期
AOF
过期key对AOF没有任何影响
- 重写时候判断是否过期
- 持久化的时候
- key过期,但是没有删除则不进入aof,因为没有del写命令
- 过期后,发生删除操作,向aof写一条del命令