2012-11-30 9 views
29

अगर मैं एक ObjectCache का उपयोग और इतने की तरह एक आइटम जोड़ने:.NET कैशिंग स्लाइडिंग समाप्ति कैसे काम करता है?

ObjectCache cache = MemoryCache.Default; 
string o = "mydata"; 
cache.Add("mykey", o, DateTime.Now.AddDays(1)); 

मुझे समझ में वस्तु 1 दिन में समाप्त हो जाएगा। लेकिन अगर वस्तु 1/2 पहुँचा जा सकता है एक दिन बाद का उपयोग कर:

object mystuff = cache["mykey"]; 

इस टाइमर रीसेट करता है तो यह अब कुंजी "MyKey" के साथ प्रवेश की अंतिम पहुँच के बाद से 1 दिन है, या यह अभी भी 1/समाप्ति तक 2 दिन?

यदि उत्तर नहीं है और ऐसा करने का कोई तरीका है तो मुझे जानना अच्छा लगेगा।

धन्यवाद।

CacheItemPolicy.AbsoluteExpiration समय का एक सेट राशि के बाद प्रवेश समाप्त हो जाएगा:

उत्तर

62

आप उपयोग कर सकते हैं कैश नीतियों के दो प्रकार के होते हैं।

CacheItemPolicy.SlidingExpiration प्रविष्टि की समय सीमा समाप्त हो जाएगी यदि उसे निर्धारित समय में एक्सेस नहीं किया गया है।

ObjectCache Add() ओवरलोड जिसे आप इसका उपयोग कर रहे हैं, इसे पूर्ण समाप्ति के रूप में मानते हैं, जिसका अर्थ है कि यह 1 दिन के बाद समाप्त हो जाएगा, भले ही आप इसे कितनी बार एक्सेस करते हैं। आपको अन्य overloads में से एक का उपयोग करना होगा। यहाँ कैसे आप एक रपट सीमा समाप्ति सेट करेंगे (यह थोड़ा और अधिक जटिल है):

CacheItem item = cache.GetCacheItem("item"); 

if (item == null) { 

    CacheItemPolicy policy = new CacheItemPolicy { 
     SlidingExpiration = TimeSpan.FromDays(1) 
    } 

    item = new CacheItem("item", someData); 

    cache.Set(item, policy); 
} 

आप उचित कैश समय है कि आप चाहते हैं TimeSpan बदल जाते हैं।

+2

इसका जवाब बिल्कुल सही है! धन्यवाद महोदय। – Kelly

-3

स्लाइडिंग एक्स्पेरेशन गुण मान कॉन्फ़िगरेशन तत्व की स्लाइडिंग एक्स्पिरेशन विशेषता का उपयोग करके सेट किया गया है। स्लाइडिंग समाप्ति वैध प्रमाणीकरण कुकी के लिए समाप्ति समय को रीसेट करता है यदि कोई अनुरोध किया गया है और टाइमआउट अंतराल के आधे से अधिक समय बीत चुका है। यदि कुकी समाप्त हो जाती है, तो उपयोगकर्ता को पुनः प्रमाणीकरण करना होगा। SlidingExpiration प्रॉपर्टी को झूठी में सेट करने से कॉन्फ़िगर किए गए टाइमआउट मान के आधार पर प्रमाणीकरण कुकी मान्य होने के समय को सीमित करके एप्लिकेशन की सुरक्षा में सुधार हो सकता है। हम अनुशंसा करते हैं कि यदि आप requSSL को झूठी के रूप में कॉन्फ़िगर करते हैं, तो आप स्लाईडिंग एक्स्पिरेशन को झूठी के रूप में भी कॉन्फ़िगर करते हैं, जिसके लिए टिकट मान्य होता है।

+0

प्रश्न स्मृति कैश कुकीज़ के बारे में नहीं था – nsimeonov

संबंधित मुद्दे