c# - सी#[बंद] का उपयोग कर AppFabric कैशिंग उदाहरण




caching (2)

यह भी जोड़ने के लायक है कि सिंगलटन पैटर्न बहुत जरूरी है यदि आप एज़ूर ऐपफैब्रिक कैशिंग सेवा का उपयोग कर रहे हैं क्योंकि डेटा कैश फैक्ट्री के प्रत्येक इंस्टीटेशन ने एज़ूर ऐपफैब्रिक कैशिंग सेवा के लिए एक नया कनेक्शन बनाया है। चूंकि कनेक्शन की संख्या आपके कैश के आकार के आधार पर सीमित है (128 एमबी कैश में 5 कनेक्शन शामिल हैं) यदि आप उसी कारखाने का दोबारा उपयोग नहीं करते हैं तो आप अपने सभी कनेक्शन लॉकआउट कर देंगे!

मैं वर्तमान में अपने .NET c # एप्लिकेशन में AppFabirc कैशिंग के एकीकरण का शोध कर रहा हूं और इस तरह के कुछ कोड उदाहरण ढूंढ रहा हूं। क्या ऐपफैब्रिक कैशिंग उपलब्ध कोई खुला स्रोत या कोड नमूने उपलब्ध है जो मैं देख सकता हूं?


कैश ऑपरेशंस
DataCacheFactory कैशिंग से निपटने के लिए पहली ऑब्जेक्ट बनाने के लिए DataCacheFactory । इसे या तो हार्ड-कोडेड कॉन्फ़िगरेशन डेटा के साथ बनाया जा सकता है जो कारखाने को कैश सर्वर से संपर्क करने का तरीका बताता है, या कॉन्फ़िगरेशन के साथ, जिस स्थिति में यह आपके web.config / app.config फ़ाइल से कॉन्फ़िगरेशन पढ़ता है। मेरी सिफारिश यह है कि आप अपनी कॉन्फ़िगरेशन जानकारी को अपनी .config फ़ाइल में रखते हैं, अन्यथा जब आप अपने कैश सेटअप में कुछ बदलना चाहते हैं, तो आपको अपने एप्लिकेशन को फिर से संकलित और पुनः वितरित करने की आवश्यकता होगी। DataCacheFactory के बारे में याद रखने की महत्वपूर्ण बात यह है कि यह बनाना महंगा है - आप निश्चित रूप से प्रत्येक कैश ऑपरेशन के लिए इनमें से एक बनाना नहीं चाहते हैं। सिंगलटन पैटर्न का उपयोग करने पर विचार करें - अधिक जानकारी के लिए यह प्रश्न देखें।

// Create a factory reading the config info from the .config file
DataCacheFactory factory = new DataCacheFactory();

Cache ऑब्जेक्ट के माध्यम से Cache का मुख्य इंटरफ़ेस होता है। कैश के नाम पर गुजरने वाले डेटा कैश फैक्ट्री की गेट कैश विधि से कैश प्राप्त होता है:

DataCache myCache = factory.GetCache("myCache");

कैश में एक आइटम जोड़ना
कैश में प्रत्येक आइटम में एक कुंजी होती है, जो एक स्ट्रिंग है। कुंजी कैश के लिए अद्वितीय होना चाहिए - यदि आप पहले से मौजूद कुंजी में गुजरते हैं तो आपको अपवाद मिलेगा। कैश किए जाने वाले आइटम को क्रमबद्ध होना चाहिए ताकि ऐपफ़ैब्रिक इसे आंतरिक रूप से कैश में सर्वर के चारों ओर पास कर सके। सबसे बुनियादी स्तर पर, आइटम Add विधि का उपयोग कर कैश में Add

object myCachedItem = new Object();
string myCachedItemKey = "MyCacheKey";
myCache.Add(myCachedItemKey, myCachedItem);

कैश से एक आइटम को हटा रहा है

myCache.Remove(myCachedItemKey);

के रूप में सरल

कैश से एक आइटम प्राप्त करना
कैश से कोई आइटम प्राप्त करते समय, हम कैश-अलग पैटर्न का उपयोग करते हैं। इसका मतलब है कि हम यह देखने के लिए कैश में देखते हैं कि वांछित वस्तु है (कुंजी का उपयोग कर)। यदि आइटम कैश में है, तो हम कैश किए गए आइटम को लेते हैं (संभावित रूप से इसे एक अलग प्रकार पर कास्टिंग करते हैं); अन्यथा हम आइटम को स्क्रैच से प्राप्त करने के लिए कदम उठाते हैं जैसे डेटाबेस से पढ़ना, और फिर इसे कैश करें ताकि अगली बार हमारे लिए यह हो।

object cachedObject;
string myImportantDataKey = "MyImportantDataTable";
DataTable myImportantData;

// This is an object because everything is returned from the cache as an object
cachedObject = myCache.Get(myImportantDataKey);
// Check to see if we got something from the cache
if (cachedObject == null)
{
    // The requested item wasn't in the cache - a cache miss
    // Go get the data from the db
    myImportantData = getMyImportantDataFromMyDatabase();

    // Add the item to the cache so we've got it for next time
    myCache.Add(myImportantDataKey, myImportantData);
}
else
{
    // We have the cached object so cast it to a DataTable
    myImportantData = (DataTable)cachedObject;
}

कैश में एक आइटम अद्यतन कर रहा है

// Put can be used to update an existing item in the cache
// If the item does not exist then it functions like Add
myCache.Put(myImportantDataKey, myUpdatedImportantData);

यह मूल सीआरयूडी परिचालन है, लेकिन समेकन से निपटने के लिए आप बहुत कुछ कर सकते हैं!

विंडोज सर्वर ऐपफैब्रिक ट्रेनिंग किट here डाउनलोड किया जा सकता here , इसमें कैशिंग पर एक सेक्शन है। यहां ऐपफैब्रिक टैग का पालन करते रहें क्योंकि मुझे यकीन है कि समय के साथ लोगों के लिए समस्याएं हल करने के लिए कई और कोड नमूने होंगे।





appfabric