當一個項目被放入緩存時,它有一個超時分配給它(顯式調用Put(),或者從緩存配置中隱含)。我想更新/重置每個項目我檢索[調用Get()]上的過期。AppFabric Cache在檢索時更新緩存項目的到期時間嗎?
我是否需要明確地放置/更新項目或將到期時間自動更新爲Now + timeout?
== == UPDATE
貌似意圖是ResetObjectTimeout() method應該被調用。我在文檔中看不到其他過期更新邏輯。
==更新2 ==
在快速測試/實驗ResetObjectTimeout()產生的大量網絡流量,如使用put(),所以它似乎是整個條目被傳送通過網絡只是更新超時。儘管事實上我沒有添加任何新項目,但我試圖用不同數量的每個項目的數據進行測試,並且流量水平確實隨着數據量的增加而增加。
我想更新超時的原因是我希望緩存項在上次使用後的N分鐘內保留在緩存中。我預計這將是一個相當常見的使用模式,爲了實現它,我需要在每次獲取操作時通過網絡重新發送所有數據,這大大降低了使用緩存的好處,例如,限制了可擴展性和性能。
做你的小物件測試ResetObjectTimeout?嘗試使用5 MB的大對象進行測試。由於WCF序列化,一個簡單的消息可能需要很多字節。由於AppFabric接口非常繁瑣,您的perf mab可能會降級。 – Cybermaxs