当前位置: 首页 > 知识库问答 >
问题:

Redis过期不工作

陶树
2023-03-14
Specifically this is what Redis does 10 times per second:
1. Test 20 random keys from the set of keys with an associated expire.
2. Delete all the keys found expired.
3. If more than 25% of keys were expired, start again from step 1.

我如何解决这个问题,或者我可以使用redis以外的东西来实现这个?

共有1个答案

林俊英
2023-03-14

Redis Keyspace通知页面提到了您的问题。

如果没有命令经常针对密钥,并且有许多密钥与TTL相关联,那么从密钥生存时间降至零到生成过期事件之间可能会有很大的延迟。

要解决这个问题,可以尝试使用Hzconfig值来增加活动过期事件的频率,默认为每秒10次。

 类似资料:
  • 我有一个应用程序使用 Spring Boot 2.2.6.release(spring-boot-starter-data-redis) Jedis 3.1.0. 我的用例:我有一个繁忙的流量处理应用程序,我写数据到Redis,并期望通过索引字段读取实体列表。这些数据只在一段时间内相关,因此我正在利用Redis的过期功能。 一切似乎都在工作,直到我注意到Redis中的数据并没有像预期的那样过期。当

  • 在这个expire方法中,我们需要提供而不是。但是我需要过期而不是。 那么,请帮助我如何处理过期?

  • 我的Redis Sentinel故障转移不起作用,当master完成时,不进行握手,故障转移也不发生;然而,sentinel会显示主程序何时恢复到正常状态或何时关闭。我的sentinel.conf文件内容如下: 我真的很感激你能帮上忙。

  • 问题内容: 当生存时间达到0时,我的Redis服务器不会删除密钥。 这是一个示例代码: 如果我通过redis检查信息返回,它说0个密钥已过期。 任何想法? 谢谢。 问题答案: 由于您正在执行“ …”,因此很难确定,但是我要说的是您在该部分设置了mykey,这将有效地消除过期。 从EXPIRE手册 仅当使用DEL命令删除密钥或使用SET或GETSET命令覆盖密钥时,才清除超时 另外,关于TTL的-1

  • 问题内容: 当我的密钥在Redis数据存储区中过期时,我正在尝试使用Redis实施过期密钥通知。redis网站提供了一些有关http://redis.io/topics/notifications的描述,但是我无法找到任何示例,例如使用Jedis的redis java客户端如何做到这一点? 任何可能的带有插图的代码都将非常有用,因为它们是redis的新功能。 问题答案: 您只能使用 pub-sub

  • 当我的密钥在redis数据存储中过期时,我试图用redis实现过期密钥通知。redis网站提供了一些如何http://redis.io/topics/notifications,但我找不到任何像Jedis这样使用redis java客户端的例子? 任何可能的带有插图的代码都会非常有用,因为我是redis的新手。

  • 主要内容:1 Redis设置key过期时间,2 Redis过期key删除策略简单介绍了Redis如何设置key过期时间,以及Redis过期key删除策略。 1 Redis设置key过期时间 Redis支持为所有类型的数据设置过期时间,对于类型,只需要使用命令或者命令: 对于某个key重新设置值,将会清除该key目前关联的过期时间。更常见的设置过期时间方式是依靠命令来设置或者更新过期时间为ttl秒/毫秒,依靠 命令来设置或者更新过期时间为timestamp 所指定的 秒数/

  • 我正在开发一个带有的Spring Boot[web]REST风格的应用程序(因为它需要部署到现有的Tomcat服务器)。它有一个,其方法在调用时需要写入Redis。我让Redis服务器在localhost上运行(默认端口,没有密码)。POM文件的相关部分具有所需的启动器依赖关系: 当我部署战争并到达终点时,我得到这样的回应: 我在Spring Boot应用程序类中添加了以下内容: 在执行一些测试R