我在我的一个项目中使用了AppFabric缓存。我知道缓存可以只在服务器上使用,也可以有本地版本(我假设这是通过实例化DataCacheLocalCacheProperties类并将其分配给DataCacheFactoryConfiguration的属性来实现的)-如果我错了,请纠正我。我还假设,如果在启用localcache的情况下执行Get,那么如果对象在本地不可用,则将从缓存服务器检索该对象。
但是,Put的情况是什么呢?当我启用本地缓存时,我所做的Put将为指定的键更新缓存服务器吗?如果是,那么这个值将如何反映在localcache中?或者,它只是更新localcache?
提前感谢!
发布于 2012-02-11 23:52:53
乔瑟夫
是的,您可以使用本地缓存将对象存储在客户端的内存中。本地缓存通常用于不频繁更改的存储对象。有助于降低与缓存服务器往返相关的延迟成本。
现在回到你的问题上:
1-您也可以使用xml配置启动本地客户端缓存。http://msdn.microsoft.com/en-us/library/ee790880.aspx
2-执行Get时,如果缓存项目在本地缓存中不可用,则从缓存服务器获取缓存项目。
3- Put始终转到缓存服务器。
4-本地缓存具有“同步”属性,允许它通过a)“超时”值(使得一旦ttl过期,对象将基于服务器缓存更新)或b)缓存通知(使得每次在服务器上更新缓存时通知客户端)与服务器缓存同步-访问http://msdn.microsoft.com/en-us/library/ee808091.aspx以获取更多详细信息。
HTH。
干杯,//hr/
http://www.hammadrajjoub.net
发布于 2013-05-24 19:30:47
当应用程序更新主缓存服务器时,AppFabrics本地缓存可能会出现问题,如果更新的项副本驻留在另一个应用程序的本地缓存中,则该副本基本上是陈旧的,需要清除。我认为AppFabric要求客户端应用程序将其本地缓存与主缓存同步。这在大多数情况下是不可行的。NCache是其中一种缓存产品,它可以使“客户端”或本地缓存始终与主缓存保持同步。有关更多信息,请阅读以下内容:
http://www.alachisoft.com/ncache/
https://stackoverflow.com/questions/9240281
复制相似问题