我们可以为Azure Redis缓存中的所有键设置到期时间吗?

时间:2019-05-10 08:55:33

标签: c# redis azure-redis-cache

要为正在创建的密钥设置过期时间,我们可以使用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);

是否可以在天青的某个地方在缓存级别设置所有密钥的有效期? 我在任何文档中都找不到答案。 我想一次设置所有kvps,以减少调用Azure Redis缓存的次数。我也找不到任何上限。一个呼叫最多可以获取和设置多少个按键?

1 个答案:

答案 0 :(得分:0)

根据Redis CommandsEXPIRE列表或Related commands(页面的右侧)列表,没有命令可以一次使所有键失效。

enter image description here

因此,唯一的方法是您需要循环运行命令EXPIRE <key> <seconds>中的列表的命令KEYS *。同时,考虑减少请求数量,您可以尝试参考StackExchange.Redis官方文档中的主题Scripting来为所有密钥到期生成Lua脚本,并通过命令{{ 3}}。