Azure Redis Cache能否为所有密钥设置过期时间?

3

在创建键的同时设置过期时间,我们可以使用StringSetAsync并传递一个时间戳值来设置过期时间。然而,如果我们想一次性设置多个键值对,则无法使用该方法 -

Task<bool> StringSetAsync(KeyValuePair<RedisKey, RedisValue>[] values, When when = When.Always, CommandFlags flags = CommandFlags.None);

Task<bool> StringSetAsync(RedisKey key, RedisValue value, TimeSpan? expiry = default(TimeSpan?), When when = When.Always, CommandFlags flags = CommandFlags.None);

在Azure的某个地方,是否可以在缓存级别上设置所有键的过期时间?我在任何文档中都找不到答案。我想一次性设置所有kvps以减少对Azure Redis缓存的调用次数。我也找不到这方面的上限。一次最多可以获取和设置多少个键?

1个回答

0
根据Redis命令列表或页面右侧的相关命令列表中关于EXPIRE的说明,目前没有一种命令可以同时过期所有键。

enter image description here

所以唯一的方法就是需要循环运行命令EXPIRE <key> <seconds>,对于从命令KEYS *返回的列表。同时,为了减少请求次数,您可以尝试参考StackExchange.Redis官方文档中的脚本编写主题,生成一个Lua脚本来处理所有键的过期并通过命令EVAL一次性过期所有键。


我会看一下这个。但是在这种情况下,同时进行多个并行调用以设置一个键值对似乎是更好的选择。 - Kruti Joshi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接