2013-04-09 73 views
1

我要开始使用Azure的分布式缓存和整个LocalCache的念来过。但事实上,它可以出去与分布式缓存同步的,使我不知道,为什么我会想使用它,以及如何我可以放心地使用它。何时使用Azure的缓存本地缓存

启用后,从缓存中检索集群项目被存储在本地客户机上的内存。这可以提高后续获取请求的性能,但可能会导致本地缓存版本与缓存集群中的实际项目之间的数据不一致。

调用DataCache.GetIfNewer是一个选项,以确保获得最新的版本,但需要,我仍然做分布式缓存打电话,传递,我要检查的对象,以查看是否两个版本不同。

我可以用通知无效的LocalCache对象,但是这是一个投票的基础上,它开辟了以投票期间留下我与陈旧的数据中出现的更新的时机上完成。

那么,为什么我会永远使用LocalCache,如果有一个理由这样做,我怎么放心使用呢?

回答

3

“只有两种计算机科学坚硬的东西:缓存失效和命名的事情”菲尔 - Karlton

你会使用LocalCache时)的性能是至关重要的b)您不关心检索到的对象可能是陈旧的。

很多情况下,对象永远不会过时(例如公共/银行假期列表),或者当您不太担心100%是最新的(例如,如果物品有> 1000个库存单位,使用本地缓存,否则从数据库重新获取)。

不要尝试和无效的本地缓存。如果您需要更多最新的对象,请从群集中获取它们。如果您无法容忍不同步的数据,请从数据库中获取。缓存始终是一种性能不一致的妥协 - LocalCache比服务器缓存更多,但服务器缓存仍然是一个折衷方案。

+0

谢谢西蒙,这些例子有助于澄清事情。在看我的缓存策略时,我会牢记它们。 – sunil 2013-04-10 10:31:21