AppFabric缓存混乱

本文关键字:混乱 缓存 AppFabric | 更新日期: 2023-09-27 17:57:51

所以我使用AppFabric for Windows Server作为一个分布式缓存系统,它将具有集群来形成缓存系统。

我在文档中读到一件事:

为了获得最佳性能,请仅为不经常更改的对象启用本地缓存。对频繁更改的数据使用本地缓存可能会增加客户端处理过时对象的机会。尽管您可以降低ttlValue并使进程更频繁地刷新本地缓存,但集群上增加的负载可能会超过拥有本地缓存的好处。在这种频繁更改数据的情况下,最好禁用本地缓存并直接从集群中提取数据

http://msdn.microsoft.com/en-us/library/hh351483(v=azure.10).aspx

现在,由于我的情况是对象将频繁更改,我如何直接访问缓存而不是通过本地缓存?这部分没有说清楚,或者我在这里有误解。

有这样的例子吗?

AppFabric缓存混乱

您不需要做任何显式的编码工作。流程如下:

  1. 您设置了具有缓存群集的AppFabric缓存服务器
  2. 您的客户端应用程序使用DataCache客户端与此缓存服务器进行交互
  3. 当您使用数据缓存客户端请求数据时,它会对服务器进行网络调用并获取数据。服务器通过连线发回数据,数据缓存客户端库对数据进行反序列化并将其提供给您
  4. 当您在客户端应用程序的数据缓存配置设置中启用localcache时,数据缓存客户端所做的是将此反序列化对象的引用保留在客户端应用的内存中
  5. 下次您请求相同的数据时,它将在该进程内存中检查对象,如果找到,则不调用数据缓存服务器。如果找不到,它将重复从#1开始的过程

因此,如果对象频繁更改/过期,那么只需禁用本地缓存(因为与服务器同步的开销增加),数据缓存客户端将始终转到服务器。

此外,当数据频繁更改并且启用了本地缓存时,您会面临本地缓存中存在过时数据的风险,而其他数据缓存客户端可能已经更新了服务器上的同一对象。

本地缓存只是需要利用的额外一层性能优势。

您可以通过代码或配置来启用/禁用它。

<localCache
  isEnabled="true"
  sync="TimeoutBased"
  objectCount="100000"
  ttlValue="300" />

通过代码:http://msdn.microsoft.com/en-us/library/ee790857(v=azure.10).aspx通过配置:http://msdn.microsoft.com/en-us/library/ee790880(v=azure.10).aspx