0
我基於數據大小廣泛分爲兩類不同的數據緩存要求: 1)非常小的數據(2-30個字符) - 這包括諸如給定entityId的類型代碼之類的東西。該系統基於父子實體層次結構的概念,並且動作是針對與實體類型代碼一起構建的值進行授權的。爲不同的實體緩存這些類型代碼可節省數據庫讀取時間。 2)中型/大型數據 - 這是一般數據,如產品描述和頁面。不同的哈希表cacheItem具有相似的數據值或單獨的cacheItems爲每個數據值 - 這是一種有效的方法?
我很困惑哪種方法更適合於第一類數據。 我可以緩存它是這樣的:
HttpRuntime.Cache.Insert("typeCode" + entityId, entityTypeCode);
或像這樣:
Dictionary<int, string> etCodes =
(Dictionary<int, string>)HttpRuntime.Cache["typeCode"];
etCodes[entityId] = entityTypeCode;
顯然,在第二種方法中,我保留對每個ENTITYID不必要的緩存項。 或者,如果Cache對象填充了幾個這樣的小尺寸項目,那麼可以。
哪些方法在性能和開銷方面很好?
如何在您的視圖可以過期自定義對象內處理?你會運行一個單獨的線程來監視相同的? – 2011-05-28 19:16:17
也許是一個單獨的線程,或者,如果它足夠高性能的話,每次在'GetEntity'或'SetEntity'函數內調用像'checkExpiration()'這樣的函數。 – 2011-05-28 19:19:00