当前位置: 首页 > article >正文

redis的数据过期策略

Redis对数据设置了数据的有效时间,数据过期之后,就需要将数据从内存中删除掉.可以按照不同的规则进行删除,这种删除规则就被称之为数据的删除策略(数据过期策略),而这种策略有两种:惰性删除和定期删除

惰性删除:设置key过期时间后,我们不去管它,当需要该key时,我们在检查其是否过期,如果过期,我们就删掉它,反之返回该key

set key value  过期时间(秒)

优点:对CPU友好,只会在使用该key时才会进行过期检查,对于很多用不到的key,不同浪费时间进行过期检查

缺点:堆内存不友好,如果一个key已经过期,但是一直没有使用,那么该key就会一直存在在内存中,内存永远不会释放.

定期删除:每隔一段时间,就会对一些key进行检查,删除里面过期的key(从一定数量的数据中取出一定数量的随机key进行检查),并删除其中的过期key.

定期清理有两种模式:

      SLOW模式是定时任务,执行频率默认是10hz,每次不超过25ms,已通过修改配置文件redis.conf的hz的选项来调整这个次数

     FAST模式执行频率不固定,但两次间隔不低于2ms,每次耗时不超过1ms

优点:可以通过限制删除的操作执行的时长和频率来减少删除操作对CPU的影响,另外定期删除,也能有效释放过期键占用的内存

缺点:难以确定删除操作执行的时长和频率

Redis的过期删除策略:惰性删除+定期删除两种策略进行配合使用

 


http://www.kler.cn/a/374459.html

相关文章:

  • 基于SSM演出道具租赁系统的设计
  • 初窥 HTTP 缓存
  • 完全透彻了解一个asp.net core MVC项目模板1
  • 【DBeaver】连接带kerberos的hive[Apache|HDP]
  • Rust 力扣 - 1456. 定长子串中元音的最大数目
  • 新品上市!让核酸酶质量和残留控制像测定蛋白浓度一样简单
  • C++20 时间转本地时间,时间转字符串以及字符串转时间的方法
  • 如何在Linux系统中使用Apache HTTP Server
  • 【测试工具篇一】全网最强保姆级教程抓包工具Fiddler(1)
  • Kaggle “Reducing Commercial Aviation Fatalities” 比赛 生理数据分析
  • [Web安全 网络安全]-提权、开发、对抗
  • 鸿蒙网络编程系列42-仓颉版域名解析示例
  • 【计算机科学】快速幂:指数运算的分治之美
  • 深度学习:Softmax 函数详解
  • C++基于opencv的视频质量检测--遮挡检测
  • pytest高版本兼容test_data[“log“] = _handle_ansi(“\n“.join(logs))错误
  • 安装Docker环境的两种方式
  • 反序列化漏洞的运行原理及防御方法
  • Halcon-模板匹配(WPF)
  • 【Linux系统编程】第四十弹---深入理解操作系统:信号捕捉、可重入函数、volatile关键字与SIGCHLD信号解析