2010-01-17 95 views
1

U正在緩存項目列表,然後添加或更新或刪除調用的方法。更新緩存數據

方法1)

A-在數據庫中更改數據。如果成功B,C
B-從緩存中刪除整個列表。
C-首次讀取時重新緩存列表。

方法2)

A-做在數據庫中的數據變化,如果成功做B
B-在做緩存的項目相同的變化,並節省更多的時間。



方法(2)可能會導致討厭很難被發現的錯誤,因爲數據來自BLL和直接放入緩存時,不能假設沒有bug將在存儲過程發生,我不擔心數據庫運行時錯誤,運行時錯誤會顯示出來,但是我擔心無效數據或計算錯誤。

我可以謹慎行事(2)嗎?是否有一個「最佳實踐」的原則,建議不要採取做法(2)?

回答

2

那麼,我個人不會去參加2.就像你自己說的那樣,併發問題會導致不好的結果。

如果(1)不夠好,我不會完全放棄(2)。

要考慮的因素:

  • 命中率(閱讀和編輯/刪除)
  • 記錄數/項目
  • 大小每個項目的
  • 等等...
1

您還應該考慮是否可以從其他應用程序(繞過緩存)更改數據庫中的數據。在這些情況下,第二種方法(2)可能會導致向用戶顯示無效數據。

我會建議測量兩種解決方案的性能,並且只有在第二種方法與第一種方法相比具有明確的好處時才使用第二種方法。