我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么删掉redis中的过期key

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么删掉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的方案就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么删掉redis中的过期key

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Redis中过期键怎么删除

这篇“Redis中过期键怎么删除”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Redis中过期键怎么删除”文章吧。前言Red
2023-06-30

Redis中key过期策略的实现

目录为什么要有过期策略?什么是Redis key过期策略?key的惰性过期策略key的定期过期策略为什么要有过期策略?Redis是一个内存型的数据库,数据是放在内存里的,但是内存也是有大小的,所以,需要配置redis占用的最大内存,主要通
Redis中key过期策略的实现
2024-09-26

redis的过期删除策略怎么写

在Redis中,有两种过期删除策略可以选择:1. 惰性删除策略(Lazy Expiration):当客户端尝试访问一个已过期的键时,Redis会检查键是否过期,如果过期则删除键。这种策略的好处是在访问键时才会触发删除操作,避免了在过期键上浪
2023-08-20

redis过期key处理的方法是什么

Redis过期key的处理方法有以下几种:1. 被动删除:当客户端尝试访问一个已经过期的key时,Redis会立即删除该key,并返回空值。2. 主动删除:Redis使用一种定期删除的策略来删除过期key。它会每隔一段时间,检查一定数量的k
2023-09-11

redis过期后不删除会怎么样

如果Redis中的数据设置了过期时间但过期后没有被删除,会出现以下情况:1. 读取过期的数据:当尝试读取过期的数据时,Redis会返回空值。因此,如果应用程序没有对过期数据进行处理,可能会出现未知的行为或错误。2. 占用内存:即使数据已过期
2023-09-11

redis怎么设置key的有效期

这篇文章主要介绍“redis怎么设置key的有效期”,在日常操作中,相信很多人在redis怎么设置key的有效期问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”redis怎么设置key的有效期”的疑惑有所帮助!
2023-06-26

Redis监听过期的key实现流程是什么

本篇内容介绍了“Redis监听过期的key实现流程是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、简介我们来个最简单的集群架构,如下
2023-07-05

redis中怎么批量删除指定key

在Redis中,可以使用DEL命令批量删除指定的key。DEL命令可以同时删除一个或多个key,只要将需要删除的key作为参数传递给DEL命令即可。例如,如果要删除key1、key2和key3,可以使用以下命令:DEL key1 key2
2023-09-06

java怎么删除redis的某个key

Redis删除key使用DEL命令可删除Redis中的key,从而删除其关联值。语法为DELkey[key...]。执行DEL会返回1(成功)或0(键不存在)。通配符*可用于删除匹配模式的所有键。DEL替代方案包括EXPIRE、UNLINK和CLUSTERDELSLOTS。最佳实践包括只删除不需要的数据、使用管道批量删除和考虑使用惰性删除。
java怎么删除redis的某个key
2024-04-13

怎么删除redis的set类型key

要删除Redis的set类型key,可以使用以下命令:1. 使用DEL命令删除key: ``` DEL key ```2. 使用SREM命令删除set中的指定元素: ``` SREM key member [member
2023-08-30

redis删除不存在的key会怎么样

当执行`DEL`命令删除一个不存在的key时,Redis会返回0,表示没有删除任何key。这是因为Redis的`DEL`命令是有副作用的,即使删除一个不存在的key也会被视为一个命令执行,而不是忽略。实际上,Redis中的所有操作都是原子
2023-10-27

编程热搜

目录