1. 定时删除
    1. 设置一个定时器,
    2. 保证内存尽快释放
    3. 占用cpu时间
    4. 性能消耗严重
  2. 惰性删除
    1. key过期的时候不删除,每次从数据库获取key的时候去检查是否过期,若过期,则删除,返回null。
    2. 不占用cpu时间
    3. 大量内存垃圾
  3. 定期删除
    1. 每隔一段时间执行一次删除
    2. 减少cpu时间占用

RDB

  • 持久化key之前,检查是否过期
  • 恢复数据库之前,检查是否过期

AOF

过期key对AOF没有任何影响

  • 重写时候判断是否过期
  • 持久化的时候
    • key过期,但是没有删除则不进入aof,因为没有del写命令
    • 过期后,发生删除操作,向aof写一条del命令