千家信息网

怎么删掉redis中的过期key

发表于:2024-10-24 作者:千家信息网编辑
千家信息网最后更新 2024年10月24日,这篇文章将为大家详细讲解有关怎么删掉redis中的过期key,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。最近我们在Redis集群中发现了一个有趣的问题。在花费大量
千家信息网最后更新 2024年10月24日怎么删掉redis中的过期key

这篇文章将为大家详细讲解有关怎么删掉redis中的过期key,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

最近我们在Redis集群中发现了一个有趣的问题。在花费大量时间进行调试和测试后,通过更改key过期,我们可以将某些集群中的Redis内存使用量减少25%。

Twitter内部运行着多个缓存服务。其中一个是由Redis实现的。我们的Redis集群中存储了一些Twitter重要的用例数据,例如展示和参与度数据、广告支出计数和直接消息。

问题背景

早在2016年初,Twitter的Cache团队就对Redis集群的架构进行了大量更新。Redis发生了一些变化,其中包括从Redis 2.4版到3.2版的更新。

在此更新后,出现了几个问题,例如用户开始看到内存使用与他们的预期或准备使用的内存不一致、延迟增加和key清除问题。key的清除是一个很大的问题,这可能导致本应持久化的数据可能被删除了,或者请求发送到数据原始存储。

初步调查

受影响的团队和缓存团队开始进行初步的调查。我们发现延迟增加与现在正在发生的key清除有关。当Redis收到写入请求但没有内存来保存写入时,它将停止正在执行的操作,清除key然后保存新key。

但是,我们仍然需要找出导致这些新清除的内存使用量增加的原因。

我们怀疑内存中充满了过期但尚未删除的key。有人建议使用扫描,扫描的方法会读取所有的key,并且让过期的key被删除。

在Redis中,key有两种过期方式,主动过期和被动过期。扫描将触发key的被动过期,当读取key时, TTL将会被检查,如果TTL已过期,TTL会被删除并且不返回任何内容。

Redis文档中描述了版本3.2中的key的主动过期。key的主动过期以一个名为activeExpireCycle的函数开始。它以每秒运行几次的频率,运行在一个称为cron的内部计时器上。

activeExpireCycle函数的作用是遍历每个密钥空间,检查具有TTL集的随机kry,如果满足过期kry的百分比阈值,则重复此过程直到满足时间限制。

这种扫描所有key的方法是有效的,当扫描完成时,内存使用量也下降了。似乎Redis不再有效地使key过期了。

但是,当时的解决方案是增加集群的大小和更多的硬件,这样key就会分布得更多,就会有更多的可用内存。这是令人失望的,因为前面提到的升级Redis的项目通过提高集群的效率降低了运行这些集群的规模和成本。

关于删掉redis中的过期key的方案就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

内存 集群 更多 数据 问题 运行 主动 使用量 团队 更新 有效 内容 函数 方案 方法 时间 正在 篇文章 缓存 存储 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全观后感1000字作文 软件开发 税率 小规模 基础地理数据库作用 高品质的idc网络技术方案 数据库图片在页面显示 5万元数据库设计 服务器请求失败的原因手机app 软件开发前端后端和测试 教育系统网络安全培训总结 我与网络安全征文700字 hp服务器红灯闪烁无法开机 科技论文 移动互联网 神马网络安全空间实训平台 bmc 芯片在服务器里的作用 软件开发发展布图 互联网新科技有哪那些城市 医院里网络安全员是干什么的 无锡LINUX软件开发 数据库删除语句条件有变量 服务器cpu核心数越多越好吗 象山财务软件开发找哪家 平均工资数据库查询 市直单位oa系统网络安全 数据库公共部分用一个库 无线传感器网络技术课程 加强网络安全管理报道 软件开发部门年终总结报告怎么写 宝山区工商软件开发要求 系统更新后打不开服务器 软件开发私有云
0