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

Express.js के लिए Redis Cache बनाना: चरण-दर-चरण मार्गदर्शिका

यह लेख 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.js के लिए Redis Cache बनाना: चरण-दर-चरण मार्गदर्शिका

Express Node JS एप्लिकेशन बनाएं

PowerShell या cmd प्रॉम्प्ट विंडो खोलें और नियत फोल्डर पर जाएं।

निम्नलिखित कमांड निष्पादित करें

npx express expressRedisCaching –hbs

Express.js के लिए Redis Cache बनाना: चरण-दर-चरण मार्गदर्शिका

मॉड्यूल इंस्टॉल करने के लिए कमांड का उपयोग करें

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

Express.js के लिए Redis Cache बनाना: चरण-दर-चरण मार्गदर्शिका

Express.js के लिए Redis Cache बनाना: चरण-दर-चरण मार्गदर्शिका

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

इस प्रकार, उद्देश्य बहुत कम आसान चरणों के साथ पूरा होता है।

  1. जावा में invokeLater() मेथड को कैसे कॉल करें? जावा में invokeLater() मेथड को कैसे कॉल करें?

    invokeLater() मेथड SwingUtilities क्लास का एक स्टैटिक मेथड है और इसका उपयोग AWT इवेंट डिस्पैचर थ्रेड में असिंक्रोनसली कार्य करने के लिए किया जा सकता है। SwingUtilities.invokeLater() मेथड SwingUtilities.invokeAndWait() की तरह काम करता है सिवाय इसके कि यह अनुरोध को इवेंट क्यू पर रखता है और तुरंत वापस

  1. CSS से स्प्लिट बटन ड्रॉपडाउन कैसे बनाएं? CSS से स्प्लिट बटन ड्रॉपडाउन कैसे बनाएं?

    CSS से स्प्लिट बटन ड्रॉपडाउन बनाने का कोड निम्नलिखित है:उदाहरण<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1" /> <style> body {    font-family: "Lucida Sans", "Lucida Sans Reg

  1. HTML DOM Style flexGrow प्रॉपर्टी HTML DOM Style flexGrow प्रॉपर्टी

    HTML DOM Style flexGrow प्रॉपर्टी का उपयोग उस अनुपात को सेट करने के लिए किया जाता है जिससे कोई तत्व फ्लेक्स तत्व के अंदर अपना आकार समायोजित करता है। यह यूनिटलेस न्यूमेरिक मान स्वीकार करता है।सिंटैक्स निम्नलिखित है:flexGrow प्रॉपर्टी सेट करना:object.style.flexGrow = number|initial|inheritयहां, number