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

Redis的key过期策略

通过redis的学习,知道使用expire命令可以给key设置一个过期时间,但是在一个redis中可能存在很多很多的key,这些可以中可能有很大一部分都有过期时间,此时redis服务器是如何知道哪些key已经过期要被删除,哪些key还没过期呢?

此时如果是直接遍历redis中所有的key,此时在key非常多的情况下,这种遍历的方式的效率是非常低的,那么redis中中key过期策略是如何实现的呢?

1.惰性删除策略

惰性删除的策略就是假设redis中的某一个key已经到了过期时间,但是redis暂时还没有删除这个key,这个key此时还会存在redis中,紧接着下一次访问redis时恰好又用到了这个key,此时这次访问就会触发redis的删除这个key的操作,并同时返回一个nil

2.定期删除策略

此时redis中除了惰性删除策略,还结合了定期删除策略,就是redis每个一段时间就会抽取一部分的key,对这一部分中的key进行验证,如果有的key已经到了过期时间,则把这个key给删除掉,如果没有过期,则保留该key。

此时抽取key的数量还不能太多,如果抽取的key太多了,由于redis是单线程的,如果抽取的key的数量太多了话,就会让redis阻塞,无法去执行其他的命令

3.内存淘汰策略

惰性删除策略和定期删除策略还是无法保证redis中大部分过期的key会被删除掉,还是有可能有一大部分过期的key没有被删除掉,此时作为惰性删除策略和定期删除策略的补充,redis还提供了内存淘汰策略 

http://www.xdnf.cn/news/16126.html

相关文章:

  • 基于多种机器学习的水质污染及安全预测分析系统的设计与实现【随机森林、XGBoost、LightGBM、SMOTE、贝叶斯优化】
  • 【前沿技术动态】【AI总结】RustFS:从 0 到 1 打造下一代分布式对象存储
  • Linux网络-------1.socket编程基础---(UDP-socket)
  • 基于Tornado的WebSocket实时聊天系统:从零到一构建与解析
  • Zookeeper学习专栏(八):使用高级客户端库Apache Curator
  • 《计算机网络》实验报告七 HTTP协议分析与测量
  • Qwen3-Code-480B-A35B-instruct模型开源当天“舆情分析”
  • @Repository与@Mapper核心区别详解
  • OpenCV 图像预处理:颜色操作与灰度、二值化处理详解
  • Modbus TCP转Devicenet:水泥厂PLC与多类仪表的自动化通信实践
  • javaSE(List集合ArrayList实现类与LinkedList实现类)day15
  • 如何Visual Studio 的配置从 Qt-Debug 切换到 x64-Debug
  • 本地运行C++版StableDiffusion!开源应用StableVerce发布
  • 垃圾回收介绍
  • (LeetCode 面试经典 150 题 ) 228. 汇总区间 (数组)
  • Ubuntu 1804 编译ffmpeg qsv MediaSDK libva 遇到的问题记录
  • 计算机网络学习----域名解析
  • 牛油果褐变的成因与食用安全
  • 棱镜技术在光谱相机中应用
  • JVM、Dalvik、ART区别
  • JVM、Dalvik、ART垃圾回收机制
  • 1.1 Deep learning?pytorch ?深度学习训练出来的模型通常有效但无法解释合理性? 如何 解释?
  • 「iOS」——KVC
  • QT的moveToThread 用法
  • GaussDB null的用法
  • 深入浅出理解 Reactor:响应式编程的利器​
  • 为什么IMU是无人机稳定控制的的核心?
  • LNMP-zblog分布式部署
  • 华为高频算法题:最长连续递增子序列(Longest Continuous Increasing Subsequence)
  • AI黑科技:GAN如何生成逼真人脸