क्या धीमे, दोहराव वाले डेटा-फ़ेचिंग के कारण आपका ऐप्लिकेशन खराब प्रदर्शन कर रहा है? समस्या को हल करने के लिए कैशिंग का प्रयास करें।

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

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

कैशिंग क्या है, और इन-मेमोरी कैशिंग कैसे भिन्न है? आप इन-मेमोरी कैशिंग के साथ अपने Nest.js एप्लिकेशन के प्रदर्शन को कैसे बढ़ा सकते हैं?

कैशिंग क्या है?

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

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

इन-मेमोरी कैशिंग क्या है?

इन-मेमोरी कैशिंग एक प्रकार का कैशिंग है जिसमें एक एप्लिकेशन अस्थायी रूप से सर्वर की मेमोरी में अक्सर एक्सेस किए गए डेटा को स्टोर करता है। महंगे डेटाबेस कॉल करने के बजाय हर बार ऐप डेटा एक्सेस करने के अनुरोध को संसाधित करता है, यह उस डेटा को मेमोरी से प्राप्त कर सकता है।

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

Nest.js एप्लिकेशन में इन-मेमोरी कैशिंग कैसे लागू करें

Nest.js में Redis, Memcached, और कई अन्य जैसे ड्राइवरों का उपयोग करके कैशिंग के लिए अंतर्निहित समर्थन है। हालांकि, आसानी से समझने के लिए, यह लेख Nest.js द्वारा प्रदान किए गए अंतर्निहित मेमोरी कैश मॉड्यूल का उपयोग करता है।

यह खंड मानता है कि आपके पास पहले से ही Nest CLI कमांड के साथ बनाया गया Nest.js एप्लिकेशन है: घोंसला नया [ऐप नाम]. एक समापन बिंदु में इन-मेमोरी कैश को लागू करने के लिए, आपके पास पहले से ही मॉड्यूल, सेवा और नियंत्रक फ़ाइलें होनी चाहिए, या उन्हें उपयोग करके उत्पन्न करें घोंसलाबनाना आज्ञा। आप इसके बारे में और जान सकते हैं घोंसला उत्पन्न में नेस्ट सीएलआई दस्तावेज.

इन-मेमोरी कैश को लागू करने के लिए पहला कदम आयात करना है कैशमॉड्यूल से @nestjs/common जैसा कि नीचे देखा गया है आपके एंडपॉइंट के मॉड्यूल में:

// example.module.ts
आयात {मॉड्यूल, कैश मॉड्यूल} से'@nestjs/common';

@मापांक({
आयात: [CacheModule.register ()],
})

निर्यातकक्षा उदाहरण मॉड्यूल {}

अगला, आपको आयात करने की आवश्यकता है CacheService और इसे Nest.js सेवा में इंजेक्ट करें जो a के साथ संचार करती है MongoDB जैसे डेटाबेस. आप देख सकते हैं कि निम्न कोड उदाहरण यह कैसे करता है:

// example.service.ts
आयात {इंजेक्शनेबल, कैश सर्विस} से'@nestjs/common';

@ इंजेक्टेबल()
निर्यातकक्षा उदाहरण सेवा {
निर्माता(निजी केवल पढ़ने के लिए कैश सेवा: कैश सेवा) {}

async डेटा प्राप्त करें(): वादा<कोई> {
कॉन्स्ट कैशकी = 'मेरी जानकारी';
होने देना डेटा = इंतजारयह.cacheService.get (cacheKey);

अगर (!आंकड़े) {
// डेटाबेस या एपीआई से डेटा प्राप्त करें
डेटा = इंतजारयह.fetchData ();

// कैश डेटा भविष्य में उपयोग के लिए
इंतजारयह.cacheService.set (cacheKey, डेटा, { ttl: 60 });
}

वापस करना आंकड़े;
}

निजीasync फ़ेचडाटा (): वादा<कोई> {
// डेटाबेस से डेटा प्राप्त करें
}
}

उपरोक्त उदाहरण कोड में, उदाहरण सेवा उपयोग CacheService एक निर्भरता के रूप में। डेटा प्राप्त करें विधि जाँचती है कि क्या कुंजी का उपयोग करके कैश में डेटा उपलब्ध है (cachekey), यदि डेटा कैश में नहीं है, तो यह इसे डेटाबेस से लाने के लिए आगे बढ़ता है और बाद में उपयोग के लिए इसे कैश कर देता है।

CacheService एक तय करना विधि जो किसी वस्तु को तर्क के रूप में लेती है। इस मामले में, आप देख सकते हैं कि कैसे मूल्य {टीटीएल: 60} जीने का समय 60 सेकंड पर सेट करता है। इसका तात्पर्य यह है कि सेवा एक मिनट के बाद कैश्ड डेटा को स्वचालित रूप से हटा देगी।

इन-मेमोरी कैशिंग के कुछ महत्वपूर्ण लाभों में निम्नलिखित शामिल हैं:

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

इन-मेमोरी कैशिंग के साथ Nest.js ऐप्लिकेशन को ऑप्टिमाइज़ करना

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

अपना अगला Nest.js API या एप्लिकेशन बनाते समय कैशिंग की अवधारणा को व्यावहारिक उपयोग में लाने का प्रयास करें।