खोज…


अकावाचे का उपयोग करके कैशिंग

अकवाचे के बारे में

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

ज़मीरिन के लिए सिफारिशें

अकवाचे निश्चित रूप से ज़ामारिन एप्लिकेशन के लिए सबसे अच्छा कैशिंग लाइब्रेरी है यदि केवल आपको दृढ़ता से रिश्तेदार डेटा, बाइनरी या वास्तव में बड़ी मात्रा में डेटा के साथ संचालित करने की आवश्यकता नहीं है। निम्नलिखित मामलों में अकावाचे का उपयोग करें:

  • आपको एक निश्चित समयावधि के लिए डेटा को कैश करने के लिए अपने ऐप की आवश्यकता है (आप सहेजे जा रहे प्रत्येक निकाय के लिए समाप्ति समय-सीमा कॉन्फ़िगर कर सकते हैं;
  • आप चाहते हैं कि आपका ऐप ऑफ़लाइन काम करे;
  • आपके डेटा के स्कीमा को निर्धारित करना और फ्रीज करना कठिन है। उदाहरण के लिए, आपके पास विभिन्न टाइप की गई वस्तुओं की सूची है;
  • आपके लिए डेटा की सरल कुंजी-मूल्य पहुंच होना पर्याप्त है और आपको जटिल प्रश्न करने की आवश्यकता नहीं है।

Akavache डेटा संग्रहण के लिए "सिल्वर बुलेट" नहीं है, इसलिए निम्नलिखित मामलों में इसका उपयोग करने के बारे में दो बार सोचें:

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

वास्तव में आप मैन्युअल रूप से अपडेट किए गए फ़ील्ड के साथ इसे पढ़कर और लिखकर अपने डेटा को मैन्युअल रूप से माइग्रेट कर सकते हैं।

सरल उदाहरण है

अकावाचे के साथ बातचीत मुख्य रूप से BlobCache नामक एक वस्तु के माध्यम से की BlobCache

अकावाचे की अधिकांश विधियां प्रतिक्रियाशील वेधशालाएं देती हैं, लेकिन आप भी विस्तार विधियों के लिए उन्हें धन्यवाद दे सकते हैं।

using System.Reactive.Linq;   // IMPORTANT - this makes await work!

// Make sure you set the application name before doing any inserts or gets
BlobCache.ApplicationName = "AkavacheExperiment";

var myToaster = new Toaster();
await BlobCache.UserAccount.InsertObject("toaster", myToaster);

//
// ...later, in another part of town...
//

// Using async/await
var toaster = await BlobCache.UserAccount.GetObject<Toaster>("toaster");

// or without async/await
Toaster toaster;

BlobCache.UserAccount.GetObject<Toaster>("toaster")
    .Subscribe(x => toaster = x, ex => Console.WriteLine("No Key!"));

गलती संभालना

Toaster toaster;

try {
    toaster = await BlobCache.UserAccount.GetObjectAsync("toaster");
} catch (KeyNotFoundException ex) {
    toaster = new Toaster();
}

// Or without async/await:
toaster = await BlobCache.UserAccount.GetObjectAsync<Toaster>("toaster")
    .Catch(Observable.Return(new Toaster()));


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow