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

为什么Redis不在多个密钥上提供批设置过期时间操作?

池麒
2023-03-14

我想设置多个有过期时间的键,但似乎我必须一个接一个地过期每个键。为什么Redis不提供一个像“mset”一样的操作?

共有2个答案

辛锦
2023-03-14

因为此操作不太频繁,您可以通过以下方式轻松模拟:

  • 服务器端Lua脚本

  • 流水线传输几个过期命令

无论选择何种解决方案,它都只会生成到redis服务器的单次往返。

郝峰
2023-03-14

你可以使用一个脚本来完成它。

EVAL 'for i, name in ipairs(redis.call("KEYS", "0*")) do redis.call("EXPIRE", name, 10); end' 0
 类似资料:
  • 代码段 我使用redis-cli工具检查了密钥的可用性 钥匙* 而且 ttl密钥名 redis.conf具有默认值。 有什么建议吗? 编辑1: 完整代码: 功能在一个方面 当这些线路运行时 RedisAtomicInteger计数器=计数器=新RedisAtomicInteger(“MyKey”);Counter.Expire(1,TimeUnit.Minutes); 我能看见 在Redis日志中

  • 本文向大家介绍Redis有效时间设置以及时间过期处理操作,包括了Redis有效时间设置以及时间过期处理操作的使用技巧和注意事项,需要的朋友参考一下 本文对redis的过期处理机制做个简单的概述,让大家有个基本的认识。 Redis中有个设置时间过期的功能,即对存储在redis数据库中的值可以设置一个过期时间。作为一个缓存数据库,这是非常实用的。如我们一般项目中的token或者一些登录信息,尤其是短信

  • 14:52:46.692[pool-1-thread-12]信息EndtoEnditTests-设置版本时间1548062566687 14:52:46.693[pool-1-thread-6]信息EndtoEnditTests-设置版本时间1548062566687 14:52:46.693[pool-1-thread-20]信息EndtoEndittest-设置版本时间154806256668

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

  • 问题内容: 我想设置一些哈希键的到期时间,如果是第一次设置该键,我希望设置一个到期时间,否则,我更喜欢保留第一次设置的到期时间。 由于存在大量的哈希键,因此我更喜欢在管道中进行此操作,但是下面的功能无法正常工作。 该行返回管道的obj,该对象始终为True,因此无论是否存在哈希键,if子句始终只包含一部分。 我的问题是:是否有一种方法可以根据管道中哈希密钥的存在来设置哈希密钥的到期时间? 问题答案

  • 问题内容: 我的代码如下所示: 它的作用是,将键值存储23小时。但是,有什么方法可以设置密钥在晚上11:59 pm过期? 问题答案: Redis本身不提供此功能。但是您可以计算直到午夜的秒数。