【问题标题】:.Net core SQL cache dependency.Net core SQL 缓存依赖
【发布时间】:2017-03-19 22:24:55
【问题描述】:

我正在尝试在 ASP.Net 核心应用程序中实现缓存。目前我已经实现的是使用IMemoryCache 进行内存缓存,但我想要的是,如果 SQL Server 2016 中的相应记录发生更改,缓存应该会失效。我找到它的一种方法SQLCacheDependency,但根据this link,它不是.Net Core 的一部分

对此有什么想法吗?

【问题讨论】:

    标签: asp.net-core .net-core sqlcachedependency


    【解决方案1】:

    目前此类尚未迁移到 .Net Core,因此您无法轻松管理此类逻辑。可能它将成为 .Net Standard 2.0 的一部分,因此您可以使用 CancellationChangeToken 直接进行 sql 数据库检查(效率非常低)来实现一些临时解决方案,或者等待更新。

    【讨论】:

      【解决方案2】:

      您可以添加 CancellationChangeToken 然后对其调用 Cancel 方法,这应该会从内存缓存中清除您的记录。最重要的是,您可以使用 PostEvictionDelegate 回调(在缓存记录被驱逐后触发其他操作)。 你可以在这里阅读更多:https://docs.microsoft.com/en-us/aspnet/core/performance/caching/memory

      【讨论】:

      • 你建议如何调用取消方法?为sql数据库创建轮询?
      • @VMAtm 好吧,轮询是一种方式。但是,考虑到它是一个缓存,应该在实际调用数据库时验证缓存(基于缓存失效超时等,除非始终验证它很重要) - 如果缓存未命中,则取消方法被称为存储库实现。
      猜你喜欢
      • 2021-11-20
      • 1970-01-01
      • 2011-05-27
      • 2010-12-07
      • 1970-01-01
      • 2010-10-06
      • 2016-05-22
      • 1970-01-01
      • 2018-03-03
      相关资源
      最近更新 更多