Caching 更新数据库表时更新缓存

Caching 更新数据库表时更新缓存,caching,appfabric,database-update,Caching,Appfabric,Database Update,我正在使用AppFabric处理我网站的缓存功能。我想要这个 产品表中发生更改后要更新的产品缓存 在我的数据库中。我读到了关于实现通读的内容,但从读到关于 发现: 这似乎不能解决我的问题,因为我希望产品缓存是 一旦发现对表的更改,它就不一定不存在 首先在缓存中。使用AppFabric有什么方法可以做到这一点吗 功能?基本上,您只需要拥有一个SqlCacheDependency机制。在过去,它对于内存缓存非常有用 但是,AppFabric缓存中不支持SqlCacheDependency机制(或者实

我正在使用AppFabric处理我网站的缓存功能。我想要这个 产品表中发生更改后要更新的产品缓存 在我的数据库中。我读到了关于实现通读的内容,但从读到关于 发现:

这似乎不能解决我的问题,因为我希望产品缓存是 一旦发现对表的更改,它就不一定不存在 首先在缓存中。使用AppFabric有什么方法可以做到这一点吗
功能?

基本上,您只需要拥有一个SqlCacheDependency机制。在过去,它对于内存缓存非常有用

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

此外,对于一个读通提供程序,缓存会检测缺少的项并调用提供程序来执行数据加载。如果您添加的项目过期30分钟,提供商将不会在过期前尝试重新加载它


最后,您可以尝试使用写后提供程序更新缓存。它将定期更新您的数据库

写操作不会更新缓存。write-behind根据缓存的更新更新数据存储。如果丢失的缓存项最初不在那里,则读操作会检测到该项。这是我的问题。是的,但是使用分布式缓存意味着使用过时的数据。使用提供程序或不允许您选择过时数据的位置:缓存上(由于数据项过期)或数据库中(因为提供程序将定期分发数据)。设计WebFarms和IS有点不同于经典的垂直网站(webserver+DB)
Read: Called when a cache client requests a cached item that does not currently exist in the associated cache.