Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Redis

कैश संगतता बनाए रखने के तीन तरीके

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

हम पहली बार में कैश से परेशान क्यों हैं? एंटरप्राइज़ कैश का मुख्य लाभ वह गति और दक्षता है जिस पर डेटा तक पहुँचा जा सकता है। जबकि प्राथमिक डेटाबेस के लिए प्रत्येक कॉल समय और प्रसंस्करण शक्ति दोनों के मामले में महंगी हो सकती है, कैश को कॉल बिजली-त्वरित हो सकती है और प्राथमिक डेटाबेस पर इसका कोई प्रभाव नहीं पड़ता है।

कैश कंसिस्टेंसी में तीन बाधाएं

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

1. जब प्राथमिक डेटाबेस में परिवर्तन कैश में दिखाई नहीं देते हैं

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

समस्या तब उत्पन्न होती है जब प्राथमिक डेटाबेस में डेटा को बदल दिया जाता है और जब कैश को उक्त परिवर्तन को प्रतिबिंबित करने के लिए समायोजित किया जाता है। यह इस बात से प्रभावित होता है कि एप्लिकेशन कितनी बार कैशे की जांच करता है। हालांकि, प्रत्येक चेक प्रोसेसर संसाधनों की कीमत पर आता है। एक ही प्रोसेसर एक साथ कई अन्य कार्यों या लेनदेन को संभाल सकता है, उनमें से कुछ कैश को अपडेट करने की तुलना में महत्वपूर्ण हैं, यदि ऐसा नहीं है।

चुनौती मीठे स्थान को खोजने में आती है, एक प्रकार का गोल्डीलॉक्स क्षेत्र जो अपडेट के लिए बार-बार जाँच करने या पर्याप्त नहीं होने के बीच स्थित है। बेशक, यदि कोई उपयोगकर्ता इस अंतराल के दौरान अप्रचलित डेटा तक पहुंचने का प्रयास करता है, तो वह जुआ खो जाता है।

कैश संगतता बनाए रखने के तीन तरीके

<मजबूत>2. संचित परिणामों को अपडेट करने में देरी होने पर

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

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

<मजबूत>3. जब कैश्ड नोड्स में असंगति हो

बेशक, वेबसाइट या एप्लिकेशन जितनी बड़ी होगी, कैश के केवल एक के बजाय कई नोड्स पर संग्रहीत होने की संभावना उतनी ही अधिक होगी। प्राथमिक . के अलावा नोड, प्रतिकृति . की कोई भी संख्या हो सकती है आदर्श रूप से, समान डेटा संग्रहीत करने वाले नोड्स। लोड संतुलन और प्रदर्शन के दृष्टिकोण से, यह अक्सर समझ में आता है।

लेकिन डेटा अखंडता के दृष्टिकोण से, यह कैश असंगति का एक और संभावित स्रोत पेश करता है। हर बार प्राथमिक डेटाबेस में डेटा को अद्यतन किया जाता है, इस परिवर्तन को सभी प्रतिकृतियों में भी प्रतिबिंबित करने की आवश्यकता होती है। भौगोलिक दृष्टि से ये नोड्स कहां स्थित हैं, और कितने हैं, इस पर निर्भर करते हुए, अद्यतन करने की प्रक्रिया में काफी समय लग सकता है। हालाँकि अद्यतन प्रक्रिया चल रही हो सकती है, फिर भी यह बहुत संभव है कि उपयोगकर्ता उस नोड तक पहुँच प्राप्त करेगा जहाँ परिवर्तन किए जाने बाकी हैं। एक बार फिर, परिणाम, आपने अनुमान लगाया, कैश असंगतता हो सकता है।

कैश असंगतता की लागत

कैश्ड डेटाबेस के सभी लाभों के लिए, कैश असंगति की संभावना शायद इसकी सबसे विशिष्ट कमी है। लेकिन समस्या कितनी बड़ी है? अंततः, कैश असंगतता की लागत संदर्भ पर निर्भर करती है।

कुछ कैश असंगतता बहुत अधिक परिणाम के बिना हो सकती है। उदाहरण के लिए, यदि आपके कैश में कुल "पसंद" अस्थायी रूप से आपके प्राथमिक डेटाबेस में वास्तविक कुल के साथ सिंक से बाहर हैं, तो संक्षिप्त विसंगति समस्या पैदा करने या यहां तक ​​कि ध्यान देने की संभावना नहीं है।

दूसरी ओर, यदि कैशे सूचीबद्ध करता है कि किसी विशेष उत्पाद का एक शेष आइटम अभी भी स्टॉक में है, जबकि प्राथमिक डेटाबेस में वास्तविक इन्वेंट्री कहती है कि कोई भी नहीं बचा है, तो परिणामी संघर्ष आपके ग्राहकों को भ्रमित और अलग कर सकता है, आपके ब्रांड की प्रतिष्ठा को नुकसान पहुंचा सकता है विश्वसनीयता के लिए, कंपनी के लेन-देन और लेखांकन पर कहर बरपाते हैं, और, चरम मामलों में, यहां तक ​​कि आपको कानूनी संकट में डाल देते हैं।

विसंगति का विरोध करने के तीन तरीके

सौभाग्य से, उपरोक्त कैश असंगति के प्रत्येक संभावित स्रोत के लिए, समाधान की एक समान संख्या है।

<मजबूत>1. कैश अमान्यकरण

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

<मजबूत>2. राइट-थ्रू कैशिंग

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

<मजबूत>3. राइट-बैक कैशिंग

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

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

Redis Enterprise to the बचाव

कैश अमान्यकरण के अलावा, राइट-थ्रू और राइट-बैक कैशिंग कई परिदृश्यों को संबोधित कर सकता है जो आपको कैश स्थिरता प्राप्त करने में मदद करते हैं। लेकिन किसी समस्या का उत्तर ढूंढना उसे लागू करने के समान नहीं है।

कैश संगतता बनाए रखने के तीन तरीके

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

रेडिस एंटरप्राइज का अद्वितीय सक्रिय-सक्रिय भू-डुप्लिकेशंस परिष्कृत एल्गोरिदम को नियोजित करता है जो संभावित लेखन संघर्षों से निपटने के लिए डिज़ाइन किया गया है जिससे कैश असंगतता हो सकती है। ये एल्गोरिदम संघर्ष-मुक्त प्रतिकृति डेटा प्रकारों (सीआरडीटी) पर आधारित हैं, यह सुनिश्चित करते हुए कि एकाधिक प्रतिकृतियों से लिखने को इस तरह से विलय किया जा सकता है जो प्रभावी ढंग से स्थिरता बनाए रखता है।

हॉबगोबलिन्स के लिए हुर्रे!

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

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

कैशिंग की पूरी कहानी प्राप्त करें। पढ़ें Redis के साथ बड़े पैमाने पर कैशिंग , ली एचिसन द्वारा।


  1. एक्सेल में डेटा आयात करना (3 उपयुक्त तरीके)

    यदि आप डेटा के साथ कुछ भी करना चाहते हैं, तो आपको पहले वह डेटा . प्राप्त करना होगा अपनी कार्यपत्रक . में . एक्सेल डेटा आयात . कर सकता है एक पाठ फ़ाइल . से और इससे डेटा पुनर्प्राप्त . भी कर सकते हैं वेबसाइट . यहां, आपको डेटा आयात करने . के तरीके मिलेंगे एक्सेल में। Excel में डेटा आयात करने के 3 तरी

  1. एक्सेल में डेटा कैसे छिपाएं (6 आसान तरीके)

    एक्सेल उपयोगकर्ताओं को अक्सर Excel . में डेटा छिपाने की आवश्यकता होती है . नतीजतन, वे वांछित डेटा प्रदर्शित करने में सक्षम हैं। इसका परिणाम उनके लिए साफ, स्वच्छ डेटा होता है। इस लेख में, हम चर्चा करेंगे कि Excel. . में डेटा कैसे छिपाया जाए प्रैक्टिस वर्कबुक डाउनलोड करें एक्सेल में डेटा छिपाने के 6

  1. एक्सेल में डेटा मैपिंग कैसे करें (5 आसान तरीके)

    डेटा मैपिंग डेटा प्रबंधन के लिए पहला और आवश्यक कदम है। Microsoft Excel में, आप आसानी से डेटा मैपिंग कर सकते हैं जो डेटा प्रबंधन में बहुत समय और परेशानी को कम करता है। यह आलेख दर्शाता है कि एक्सेल में डेटा मैपिंग कैसे करें 5 . में आसान तरीके। आप नीचे दिए गए लिंक से अभ्यास कार्यपुस्तिका डाउनलोड कर सक