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

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.dtcms.com/a/293635.html

相关文章:

  • 4.3 激活函数的目的
  • LLM 幻觉一般是由于什么产生的,在模型什么部位产生
  • 计算机组成原理——数据的表示和运算2
  • 手机开启16k Page Size
  • J2EE模式---服务定位器模式
  • JavaEE Spring框架的概述与对比无框架下的优势
  • 关于原车一键启动升级手机控车的核心信息及注意事项
  • 第五章第一节 EXTI 外部中断
  • Adobe全系列下载 官方原版补丁
  • 【Spark征服之路-3.8-Spark-SQL核心编程(七)】
  • 2025獬豸杯WP
  • 用Phi-3 Mini微调实现英文到尤达语翻译
  • 软硬件协同仿真和验证的标准接口协议SCE-MI简介
  • 避坑指南:Windows 11中 Docker 数据卷的存放位置
  • vue+element-ui实现主子表
  • Vue3 面试题及详细答案120道(61-75 )
  • 力扣146:LRU缓存
  • 使用阿里云 ESA 边缘函数转发代理 docker registry
  • 利用aruco标定板标定相机
  • 电商通用话术模板搭建指南:高效转化,服务升级
  • macOS配置maven及报错处理:zsh: permission denied: mvn
  • Transformer输入部分实现
  • 学习 Flutter(五):玩安卓项目实战 - 下
  • springcloud环境和工程搭建
  • 数组算法之【数组中第K个最大元素】
  • RK3568笔记九十:基于web显示RTSP流
  • 【第三章自定义检视面板_创建自定义编辑器_如何创建自定义PropertyDrawer(9/9)】
  • SQL 中 CASE WHEN 及 SELECT CASE WHEN 的用法
  • HF86611_VB1/HF86611Q_VB1:多通道USB HiFi音频解码器固件技术解析
  • CLI 与 IDE 编码代理比较:提升开发效率的两种路径