redis 过期处理

常见过期策略:

1.定时删除(不建议使用)

   在一个键设置过期时间的同时为该键创建一个定时器,时间到来的时刻删除该键

  优点:内存释放快 ;缺点:大量键的定时器影响性能

2.惰性删除

    在对键进程获取或者处理的时候验证是否过期,过期则删除返回null

    优点:cpu占用少;缺点:大量未过期未删除的键未删除释放内存可能发生内存溢出

3.定期删除

    设定定时器,到时间执行一次删除过期键操作

   优点:定期删除cpu占用相对定时删除少很多;缺点,内存方面不如定期删除,cpu占用方面不如惰性删除

   难点:设置定期时间,参考逻辑和服务器资源设定

redis 采用的方式是 惰性删除和定期删除的联合方案

  惰性删除流程:get或setnx操作时先检查是否过期删除

  定期删除流程:获取每个库中的设定过期时间的键 判断是否过期(默认是获取20键验证)

AOF持久化过期键处理

  内存持久化到AOF文件时验证键是否过期

  AOF文件重写时验证是否过期,过期则删除同时删除文件中的信息

  RDB文件恢复到内存中时验证是否过期,过期则删除同时删除文件中的信息

你可能感兴趣的:(redis)