如何使用StackExchange.Redis为Azure Redis缓存的所有键全局设置键过期值?

时间:2019-01-09 02:36:49

标签: azure .net-core stackexchange.redis

我正在Asp.net Core MVC 2.1应用程序中实现Azure Redis缓存。我需要全局设置所有密钥的默认密钥到期值。而且,我还应该能够覆盖各个键的有效期限。

我知道我们可以使用IDatabase.KeyExpire方法设置单个键的到期时间,但是我正在寻找某种适用于所有键的配置。

注意:我使用的是默认驱逐策略(volatile-lru),未对其进行任何更改。

2 个答案:

答案 0 :(得分:0)

AFAIK,redis不提供此功能-您必须指定自动失效的密钥。请参阅此article

当我们转到IDatabase的定义时,我们可以看到下图KeyExpire,并且仅指定单个密钥来设置到期时间,而KeyExists可以设置一个密钥数组。因此,您必须为每个键设置过期值

enter image description here

有关更多详细信息,您可以转到此article

答案 1 :(得分:0)

您是否要通过不必对每个键执行EXPIRE命令来保存?如果是这样,可以同时执行SET和EXPIRE的Redis SETEX命令可能会有所帮助,并且您可以通过扩展方法/包装器使用预配置的到期值。使用到期时,StackExchange.Redis使用SETEX命令。要设置各个键的有效期,可以使用EXPIRE命令。