【问题标题】:How to set key expiration value globally for all the keys of Azure Redis Cache using StackExchange.Redis?如何使用 StackExchange.Redis 为 Azure Redis 缓存的所有键全局设置键过期值?
【发布时间】:2019-01-09 02:36:49
【问题描述】:

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

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

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

【问题讨论】:

  • 我终于使用 IDatabase 的 KeyExpireAsync 方法设置了每个键的到期时间。

标签: azure .net-core stackexchange.redis


【解决方案1】:

AFAIK,redis 不提供此功能 - 您必须指定自动过期的密钥。请参考这个article

当我们去IDatabase的定义时,我们可以看到下图KeyExpire并且只指定一个键来设置过期,而不是KeyExists可以设置一个键数组。所以你必须为每个键设置过期值

更多详情,你可以去这个article

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多