我们可以为 Azure Redis 缓存中的所有密钥设置过期时间吗?
Can we set expiry for all keys in 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);
是否可以在 azure 的某处为缓存级别的所有密钥设置过期时间?
我在任何文档中都找不到答案。
我想一次设置所有kvps以减少对azure redis缓存的调用次数。我也找不到任何上限。一次调用最多可以获取和设置多少个键?
根据Redis Commands
list or Related commands
(the right-side of page) list about EXPIRE
,没有一个命令可以同时使所有密钥失效。
所以唯一的方法是您需要循环到 运行 命令 EXPIRE <key> <seconds>
以获取来自命令 KEYS *
的列表。同时考虑减少请求次数,可以参考题目Scripting
of StackExchange.Redis
offical documents to generate a Lua script for all keys expiry and request once to expire all via command EVAL
.
要在创建密钥时为其设置到期时间,我们可以使用 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缓存的调用次数。我也找不到任何上限。一次调用最多可以获取和设置多少个键?
根据Redis Commands
list or Related commands
(the right-side of page) list about EXPIRE
,没有一个命令可以同时使所有密钥失效。
所以唯一的方法是您需要循环到 运行 命令 EXPIRE <key> <seconds>
以获取来自命令 KEYS *
的列表。同时考虑减少请求次数,可以参考题目Scripting
of StackExchange.Redis
offical documents to generate a Lua script for all keys expiry and request once to expire all via command EVAL
.