2013-02-12 204 views
1

我正在使用AppFabric来处理我的网站的缓存功能。我希望 产品缓存一旦在我的数据库中的产品表 内发生变化,就会更新。我读了有关实现通读但是从阅读我 发现:更新数据库表更新缓存

Read: Called when a cache client requests a cached item that does not currently exist in the associated cache. 

这似乎并不像它会解决我的问题,因为我想在产品缓存是 更新一次更改该表已被发现,它不一定不会在缓存中首先存在 。有没有什么办法可以使用AppFabric 的功能做到这一点?

回答

0

基本上,你只是想有一个SqlCacheDependency机制。在过去,它在内存缓存中非常有用。

但是,对于SqlCacheDependency机制(或者实际上对于任何类型的依赖关系),AppFabric缓存内不支持。你必须建立你自己的...

此外,通过一个通读提供商,缓存检测到缺失的项目,并呼吁提供商执行数据加载。如果您的产品过期30分钟,供应商永远不会在到期前重新加载它。

最终,您可以尝试使用Write-Behind提供程序更新缓存。它会定期更新你的数据库。

+0

后面的写入不会更新缓存。后面的写入根据缓存的更新更新数据存储。 通读检测到丢失的缓存项目,如果它不在第一位。这是我的问题。 – Neeta 2013-02-12 15:52:52

+0

是的,但使用分布式缓存意味着使用陈旧的数据。使用提供程序或不允许您选择陈旧数据的位置:缓存(由于数据项到期)还是在数据库中(因为提供程序会定期为您提供数据)。设计WebFarms和IS与经典的垂直网站(webserver + DB)有点不同, – Cybermaxs 2013-02-12 16:05:43