IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Redis的过期策略 -> 正文阅读

[大数据]Redis的过期策略

过期key集合

redis中所有设置了过期时间的key被放入一个独立的字典中,之后会定期扫描该字典,检查已经到期的key并进行删除操作。

定时扫描策略

默认情况下redis每秒钟进行10次过期扫描,但是并不会扫描所有的key,而是采用简单的贪心策略,步骤如下:

  1. 从过期字典中随机选出20个key。

  2. 删除20个key中已过期的key。

  3. 如果过期key的比例超过1/4,重复以上步骤。

问题

如果出现大量过期的话,redis可能会一直重复上面的步骤,导致一个不停循环处理,影响redis服务对外的响应,因此该扫描策略具有扫描时间的上线,默认值是扫描时间不超过25ms。

如果在同一时间内有大量的key过期,redis在短期内将多次循环扫描过期字典,直到过期字典中的key变得稀疏,循环扫描的次数才会下降,这会导致线上读写请求出现卡顿,当然不单是循环扫描导致的卡顿,剔除国企key的同事,内存管理器将频繁回收内存页也会占用CPU的资源引起卡顿,

同时,大量key过期,redis进入过期扫描的处理中,如果此时有来自客户端的请求,将至少需要等待25ms才会进行处理,

如果客户端的超时时间设置的较短,比如10ms,那么该连接就会因为超时关闭,业务端将出现超时的异常,此时在 slowlog 中也无法看到慢查询记录,因为慢查询指的是逻辑处理时间而不是等待时间。

应对策略

在给大量的key设置过期时间时,应尽量将时间随机分散开来,不要集中在一个时间点失效,在真正的到期时间后加上一个随机时间,这么做可以有效的解决大量key同时过期导致的卡顿问题。

# 在目标过期时间上增加一天的随机时间
redis.expire_at(key, random.randint(86400) + expire_ts)
复制代码

懒惰删除策略

惰性策略指的是,如果客户端访问了一个带有过期时间的key,那么访问时,redis会检查这个key是否已经过期,如果过期了就理解删除。

惰性删除策略可以理解为零散删除,定时扫描策略则是集中删除。

从节点过期策略

从节点不会对过期key进行扫描,当主节点的key到期被处理时,会在AOF日志中增加一个del指令,同时同步到所有从节点中,从节点通过该指令删除自己内存中的key,

因为指令同步是异步的,如果主从之间没有及时同步的话,就会出现主从数据不一致的情况。

觉得有帮助请帮忙访问下,谢谢:https://developer.aliyun.com/article/845557

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-28 22:59:51  更:2021-12-28 23:00:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:48:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码