清除StackExchange.Redis缓存,具有可配置的到期时间

时间:2017-04-13 09:33:12

标签: c# stackexchange.redis

我想知道在指定的到期日期之后是否有办法从我的c#服务清除/刷新整个缓存。我怎样才能在c#中实现这个目标?

C#

nginx: [warn] conflicting server name "local.kallikids" on 0.0.0.0:80, ignored

我看到了一个类似的解决方案,当我实际使用对象填充缓存时,我可以传递到期,但我更想要一个全局缓存清晰的解决方案。

任何帮助或建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以使用TTL设置向redis添加假密钥,例如_waitforit。 然后等待它过期。 在此期间,您为key space events订阅过期密钥。在_waitforit键到期的那一刻,您将刷新数据库。

这些事件的唯一缺点是您必须在Redis服务器上明确启用它。可以通过配置或命令行完成。您需要CONFIG SET notify-keyspace-events Exe我认为

在网站上注意:

如果您不想自己编写所有代码,可以使用CacheManager为您完成大部分工作。

它构建了过期配置,您可以收听所有这些事件。

您可以订阅正常的C#事件onRemoveByHandle,它通过密钥空间事件触发(如果一切配置正确)。