यह लेख Redis Cache का उपयोग करके एक नमूना एप्लिकेशन प्रदान करता है जिसमें व्याख्या शामिल है।
कृपया Express Node JS एप्लिकेशन बनाने के तरीके पर इस लेख को देखें, ताकि हम बिना किसी देरी के विषय में तेजी से जा सकें।
कैशिंग की आवश्यकता क्यों है?
जब एक ही प्रतिक्रिया को कई बार सर्व करने की आवश्यकता होती है, तो डेटा को वितरित सर्वर मेमोरी में स्टोर करें और इसे हर एक कॉल के लिए स्टोरेज लेयर से प्राप्त डेटा की तुलना में तेजी से पुनर्प्राप्त किया जा सकता है। कैशिंग एक निर्दिष्ट अवधि के लिए मानों को डुप्लिकेट करने और वेब अनुरोध को तुरंत सर्व करने की एक एप्लिकेशन की क्षमता है।
ये तकनीकें तब प्रभावी होंगी जब
- किसी थर्ड-पार्टी API को कॉल करने की आवश्यकता हो और कॉल काउंट मायने रखता हो
- क्लाउड और सर्वर के बीच डेटा ट्रांसफर की लागत
- सर्वर प्रतिक्रिया समवर्ती अनुरोधों के आधार पर महत्वपूर्ण हो
Redis Cache क्या है?
Redis जैसे केंद्रीकृत वितरित सिस्टम में स्टोर किया गया डेटा कैश। Redis को डेटा स्ट्रक्चर सर्वर भी कहा जाता है, जिसका अर्थ है कि विभिन्न प्रक्रियाएं बिना अधिक लोडिंग समय के एक ही समय में डेटा को क्वेरी और संशोधित कर सकती हैं।
Redis के फायदे
डेटा स्ट्रक्चर के विशेष गुण हैं
- भले ही डेटा अक्सर अनुरोधित, सर्व और संशोधित होता है, डेटा RAM में स्टोर करने के बजाय डिस्क में स्टोर होगा।
- हाई-लेवल प्रोग्रामिंग भाषा के विपरीत, कार्यान्वयन मेमोरी इष्टतम उपयोग पर प्रकाश डालेगा।
- रिप्लिकेशन, स्थायित्व के स्तर, क्लस्टरिंग और उच्च उपलब्धता (HA) जैसी सुविधाएं भी प्रदान करता है।
- Redis जटिल Memcached ऑपरेशंस जैसे Lists, Sets, ऑर्डर डेटा सेट, आदि को संभाल सकता है।
स्थानीय सिस्टम में Redis Client का उपयोग
Redis का उपयोग करने के लिए, आपको स्थानीय सिस्टम में Node JS Redis Client इंस्टॉल करना होगा। MSI फाइल (v3.0.504 स्थिर संस्करण इस लेख के प्रकाशन की तारीख तक) को Github से डाउनलोड किया जा सकता है और सामान्य इंस्टॉलेशन प्रक्रिया के साथ आगे बढ़ सकते हैं (Windows OS के लिए)।
नवीनतम Redis Client को Windows Subsystem for Linux (WSL) के साथ भी इंस्टॉल किया जा सकता है और Redis 6.x संस्करण इंस्टॉल करें। साथ ही, डॉकराइज़िंग, Mac और Linux OS के लिए डाउनलोड पर निर्देशों का पालन करें
निम्नलिखित कमांड द्वारा Redis Client चलाएं
redis-server

Express Node 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 प्लेसहोल्डर (मॉक API) साइट से प्रतिक्रिया प्राप्त करना, डेटा को Redis Cache में स्टोर करना और अनुरोध का जवाब देना है। आगे के अनुरोध पर, कैश्ड डेटा सर्व किया जाएगा।
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("कैश्ड डेटा से")
res.send(JSON.parse(value))
} else{
const resp = await fetch(sourceURL)
.then((response) => response.json());
await client.set('todos', JSON.stringify(resp));
console.log("स्रोत डेटा से")
res.send(resp);
}
await client.disconnect();
})
module.exports = router
Redis का उपयोग करके बनाया गया ऑब्जेक्ट है
redis.createClient({
host:'127.0.0.1',
port:6379
});
विकल्पों के साथ
host: वर्तमान में Redis स्थानीय सिस्टम में उपलब्ध है और इसलिए होस्ट डिफ़ॉल्ट 127.0.0.1 है
port: डिफ़ॉल्ट रूप से Windows OS Redis को 6379 पोर्ट आवंटित करता है, लेकिन इसे अनुकूलित किया जा सकता है।
अब ऐप को निम्नलिखित कमांड निष्पादित करके चलाने का समय है
npm start


पहले हिट पर, डेटा स्रोत API से लगभग 1156ms के प्रतिक्रिया समय के साथ प्राप्त किया जाता है और इसे इन-मेमोरी डेटा स्टोर Redis Cache में संग्रहीत किया गया है। दूसरा हिट कैश से लगभग ~10ms या ~6ms के उल्लेखनीय कमी के साथ डेटा प्राप्त करता है।
इस प्रकार, उद्देश्य बहुत कम आसान चरणों के साथ पूरा होता है।