2013-02-12 266 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