【问题标题】:With AppFabric caching, can you use concurrency methods with the local cache enabled?使用 AppFabric 缓存,您可以在启用本地缓存的情况下使用并发方法吗?
【发布时间】:2011-11-14 03:15:45
【问题描述】:

我正在尝试弄清楚是否可以同时使用悲观并发模型本地缓存。

当您启用了本地缓存并使用了 GetAndLock 和 PutAndUnlock 等悲观并发方法时,锁定/获取/放置发生在哪里?在缓存集群上,还是在本地缓存中?如果它发生在集群上,它是否会自动将更改与本地缓存同步?

【问题讨论】:

    标签: .net caching concurrency appfabric


    【解决方案1】:

    是的,您可以使用本地缓存和悲观并发。实际上,您可以使用任何一种并发,因为正如您在问题中所暗示的那样,所有并发解析都发生在“主”缓存中。如果您考虑一下,这是唯一可以发生的地方-想象一下,如果您有两台服务器在其本地缓存中锁定了项目,并且同时解锁了-“主”缓存将不知道哪个一个是“真正的”项目,然后在集群中复制,因此所有悲观锁/乐观版本检查都必须在中心进行。

    一旦发生并发解析(无论哪种模型),本地缓存都会重新同步,但这取决于您如何配置本地缓存。本地缓存的项目可以超时并从 master 刷新,或者 master 可以在更新项目时向本地缓存发出通知。 this page 对此进行了一些讨论,并详细说明了如何在应用程序中配置它。或 web.config here

    【讨论】:

    • 谢谢,有道理。我怀疑是这种情况,但在任何地方的文档中都找不到。所以“Get”首先检查本地缓存,但“GetAndLock”绕过它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-04
    相关资源
    最近更新 更多