में आइटम को स्टोर/पुनर्प्राप्त करने का सबसे प्रभावी तरीका क्या है मेरे पास एक ऐसी वेबसाइट है जहां मैं बहुत सारी जानकारी कैश करता हूं। मैं asp.net कैश में सामान संग्रहीत करने के आसपास विरोधाभासी जानकारी देख रहा हूं।एएसपीनेट httpContext.Cache
Dictionary<string, List<Car>> mydictionary;
मैं "के रूप में MyDictionary" एक स्ट्रिंग कुंजी के साथ पूरी बात की दुकान और फिर अंदर घुसते हैं एक बार मैं वस्तु बाहर खींच सकता है:
उदाहरण के लिए कहते हैं कि मैं इस डेटा संरचना देता है।
HttpContext.Cache.Add("MyDictionary",
mydictionary,
null,
Cache.NoAbsoluteExpiration,
new TimeSpan(10, 0, 0),
CacheItemPriority.Normal,
null);
var myDict = HttpContext.Cache["MyDictionary"] as Dictionary<string, List<Car>>;
दूसरी बात मैं कर सकता है इसे तोड़ने के नीचे और कैश में अलग से मेरी शब्दकोश में प्रत्येक आइटम की दुकान (कैश दिए गए एक शब्दकोश वैसे भी है)।
Dictionary<string, List<Car>> mydictionary;
foreach (var item in mydictionary.Keys)
{
HttpContext.Cache.Add(item, mydictionary[item], null, Cache.NoAbsoluteExpiration, new TimeSpan(10, 0, 0), CacheItemPriority.Normal, null);
}
var myitem = "test";
var myDict = HttpContext.Cache[myItem] as List<Car>;
प्रदर्शन निहितार्थ बहुत अलग होगा (दिए गए मैं यह सोचते हैं कि सब कुछ वैसे भी स्मृति में है?)
बस याद रखें कि कैश का उपयोग अक्सर उपयोग की जाने वाली 'महंगी' वस्तुओं (यानी कैशिंग की लागत से अधिक पुनर्वास की लागत) को पुनर्जीवित करने की लागत को बचाने के लिए होता है। यदि यह कैशिंग के लायक है, तो प्रदर्शन को अधिकतम करने के लिए कैश को एलआरयू नियम लागू करने दें। सभी प्रविष्टियों को एक कैश एंट्री ('माई डिक्शन') में डालकर एलआरयू को हराया जाता है, और आपको बहुत सारी खोने का जोखिम कैश करना चाहिए कि अन्य प्रविष्टियों को रखने से MyDictionary कम कुशल है। – Will