2012-11-22 63 views
0

http://37signals.com/svn/posts/3113-how-key-based-cache-expiration-works.Net基於密鑰的緩存。在談到相關模型

「你通過把模型上的更新對象在一起。所以,如果你更改屬於屬於一個項目todolist的待辦事項,你更新每次的updated_at時間戳處理依賴結構鏈的一部分,它會自動根據這些對象更新緩存鍵。「

我正在學習基於密鑰的緩存並試圖在.Net中實現。這是我努力的一點,更新依賴於最近更新緩存項目的緩存項目。

class Parent 
    { 
     public int ID; 
     public DateTime updated_at; 
     public Child child; 
    } 
    class Child 
    { 
     public int ID; 
     public DateTime updated_at; 
     public string name; 
    } 

假設我將Child添加到緩存。然後使用那個Child創建Parent並緩存它。當我更新Child時,我想以與37Signals相同的方式來對Parent進行緩存。

我能看到的唯一方法是通過更新Parent上的updated_at標誌,同時我在Child上。我不確定是否會喜歡一些澄清。

非常感謝!

回答

0

您應該展示如何構造密鑰。
上述文章對memcached非常緊張,因此當您使用此方法時,需要提及memcached的某些功能。

+0

他們有什麼功能?它是「belongs_to」和「touch」的東西嗎? – MaxWillmo

+1

緩存上的垃圾收集是最明顯的垃圾收集。在.NET中,高速緩存大小沒有實際的限制,並且在超限情況下不會自動刪除。 – weismat

+0

我將使用滑動到期的Azure緩存來解決該問題。 – MaxWillmo