要为正在创建的密钥设置过期时间,我们可以使用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缓存的次数。我也找不到任何上限。一个呼叫最多可以获取和设置多少个按键?
答案 0 :(得分:0)
根据Redis Commands
的EXPIRE
列表或Related commands
(页面的右侧)列表,没有命令可以一次使所有键失效。
因此,唯一的方法是您需要循环运行命令EXPIRE <key> <seconds>
中的列表的命令KEYS *
。同时,考虑减少请求数量,您可以尝试参考StackExchange.Redis
官方文档中的主题Scripting
来为所有密钥到期生成Lua脚本,并通过命令{{ 3}}。