<पी> यह आलेख स्पष्टीकरण के साथ रेडिस कैश का उपयोग करके एक नमूना एप्लिकेशन प्रदान करता है। <पी> कृपया एक्सप्रेस नोड जेएस एप्लिकेशन कैसे बनाएं, इस लेख को देखें, ताकि हम बिना किसी देरी के तुरंत इस विषय पर आगे बढ़ सकें। कैशिंग की आवश्यकता क्यों है?
<पी> जब एक ही प्रतिक्रिया को कई बार प्रस्तुत करने की आवश्यकता होती है, तो डेटा को वितरित सर्वर मेमोरी में संग्रहीत करें और इसे प्रत्येक कॉल के लिए स्टोरेज परत से पुनर्प्राप्त डेटा की तुलना में तेज़ी से पुनर्प्राप्त किया जा सकता है। कैशिंग एक एप्लिकेशन की एक निर्दिष्ट अवधि के लिए मानों को डुप्लिकेट करने और वेब अनुरोध को तुरंत पूरा करने की क्षमता है। <पी> ये तकनीकें तब प्रभावी होंगी जब - तृतीय पक्ष एपीआई और कॉल की गिनती के लिए कॉल करने की आवश्यकता है
- क्लाउड और सर्वर के बीच डेटा ट्रांसफर की लागत।
- समवर्ती अनुरोधों के आधार पर सर्वर प्रतिक्रिया महत्वपूर्ण है।
रेडिस कैश क्या है?
<पी> रेडिस जैसे केंद्रीकृत वितरित सिस्टम में संग्रहीत डेटा कैश। रेडिस को डेटा स्ट्रक्चर सर्वर भी कहा जाता है, जिसका अर्थ है कि विभिन्न प्रक्रियाएं बिना अधिक लोडिंग समय के एक ही समय में डेटा को क्वेरी और संशोधित कर सकती हैं। रेडिस के लाभ
<पी> डेटा संरचनाओं के विशेष गुण हैं - भले ही डेटा को अक्सर अनुरोध किया जाता है, परोसा जाता है और संशोधित किया जाता है, फिर भी डेटा को रैम में संग्रहीत करने के बजाय डिस्क में संग्रहीत किया जाएगा।
- उच्च-स्तरीय प्रोग्रामिंग भाषा के विपरीत, कार्यान्वयन मेमोरी के इष्टतम उपयोग पर प्रकाश डालेगा।
- प्रतिकृति, स्थायित्व के स्तर, क्लस्टरिंग और उच्च उपलब्धता (एचए) जैसी सुविधाएं भी प्रदान करता है।
- रेडिस सूचियाँ, सेट, ऑर्डर किए गए डेटा सेट इत्यादि जैसे जटिल मेम्केच्ड संचालन को संभाल सकता है,
स्थानीय सिस्टम में Redis क्लाइंट का उपयोग करना
<पी> रेडिस का उपयोग करने के लिए, आपको स्थानीय सिस्टम में नोड जेएस रेडिस क्लाइंट स्थापित करना होगा। एमएसआई फ़ाइल (इस लेख की प्रकाशन तिथि के अनुसार v3.0.504 स्थिर संस्करण) को जीथब से डाउनलोड किया जा सकता है और सामान्य इंस्टॉलेशन प्रक्रिया (विंडोज़ ओएस के लिए) के साथ आगे बढ़ सकती है। <पी> नवीनतम रेडिस क्लाइंट को लिनक्स (डब्ल्यूएसएल) के लिए विंडोज सबसिस्टम के साथ भी इंस्टॉल किया जा सकता है और रेडिस 6.x संस्करण इंस्टॉल किया जा सकता है। इसके अलावा, डॉकराइज़िंग के लिए, मैक और लिनक्स ओएस डाउनलोड पर दिए गए निर्देशों का पालन करें <पी> निम्नलिखित कमांड द्वारा रेडिस क्लाइंट चलाएँ
redis-server
<पी>
एक एक्सप्रेस नोड JS एप्लिकेशन बनाएं
<पी> PowerShell या cmd प्रॉम्प्ट विंडो खोलें और नियत फ़ोल्डर पर जाएँ। <पी> निम्नलिखित आदेश निष्पादित करें
npx express expressRedisCaching –hbs
<पी>
<पी> कमांड का उपयोग करके मॉड्यूल स्थापित करें
npm i
<पी> और निम्नलिखित अतिरिक्त पैकेज स्थापित करें
npm i redis
npm i isomorphic-fetch
<पी> एक बार सभी पैकेज इंस्टॉल हो जाएं और शुरू करने के लिए तैयार हों। मैंने "getCached.js" नामक एक नया रूट पेज बनाया है ” और “App.js में मैप किया गया ” पेज.
app.use('/getCached', require('./routes/getCached'));
<पी> एंडपॉइंट को कॉल करने पर, तर्क JSON प्लेसहोल्डर (मॉक एपीआई) साइट से प्रतिक्रिया प्राप्त करना, डेटा को रेडिस कैश में संग्रहीत करना और अनुरोध का जवाब देना है। आगे के अनुरोध पर, कैश्ड डेटा परोसा जाएगा।
const express = require('express')
require('isomorphic-fetch')
const redis = require('redis')
const router = express.Router()
const client = redis.createClient({
host:'127.0.0.1',
port:6379
})
let sourceURL = 'https://jsonplaceholder.typicode.com/todos';
router.get('/',async(req, res)=>{
await client.connect();
const value = await client.get('todos');
if(value){
console.log("from cached data")
res.send(JSON.parse(value))
}
else{
const resp = await fetch(sourceURL)
.then((response) => response.json());
await client.set('todos', JSON.stringify(resp));
console.log("from source data")
res.send(resp);
}
await client.disconnect();
})
module.exports = router
<पी> रेडिस का उपयोग करके बनाई गई वस्तु है
redis.createClient({ host:’127.0.0.1’, port:6379});
<पी> विकल्पों के साथ <पी> मेज़बान :वर्तमान में रेडिस स्थानीय सिस्टम में उपलब्ध है और इसलिए होस्ट डिफ़ॉल्ट 127.0.0.1 है <पी> पोर्ट :डिफ़ॉल्ट रूप से विंडोज़ ओएस रेडिस को 6379 पोर्ट आवंटित कर रहा है, लेकिन इसे अनुकूलित किया जा सकता है। <पी> अब कमांड निष्पादित करके ऐप चलाने का समय आ गया है
npm start
<पी>
<पी>
<पी> पहली हिट पर, डेटा लगभग 1156ms के प्रतिक्रिया समय के साथ स्रोत एपीआई से प्राप्त किया जाता है और इसे इन-मेमोरी डेटा स्टोर रेडिस कैश में संग्रहीत किया गया है। दूसरे हिट में कैश्ड से डेटा प्राप्त होता है, जिससे लाने के समय में केवल ~10 एमएस या यहां तक कि ~6 एमएस की उल्लेखनीय कमी आती है। <पी> इस प्रकार, उद्देश्य बहुत कम आसान कदमों से पूरा हो जाता है।