برنامه نویسی

Redis با برنامه Node – DEV Community

Summarize this content to 400 words in Persian Lang
برای نشان دادن نحوه استفاده از Redis در یک برنامه Node.js برای رسیدگی به درخواست‌های API، یک مثال ساده را نشان می‌دهم که در آن از Redis برای ذخیره کردن پاسخ یک درخواست API استفاده می‌شود.

راه اندازی:

Install Redis: مطمئن شوید که Redis نصب و اجرا شده است.
یک پروژه Node.js جدید ایجاد کنید:

mkdir redis-api
cd redis-api
npm init -y

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نصب بسته های مورد نیاز:

npm install express redis

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

کد مثال:

یک فایل app.js با کد زیر ایجاد کنید:

const express = require(‘express’);
const redis = require(‘redis’);
const app = express();
const port = 3000;

// Connect to Redis
const redisClient = redis.createClient();

redisClient.on(‘error’, (err) => {
console.error(‘Redis error:’, err);
});

// Middleware to handle JSON request bodies
app.use(express.json());

// Handle GET request to /api/data
app.get(‘/api/data’, (req, res) => {
const key = ‘dataKey’;

// Check if data is in Redis cache
redisClient.get(key, (err, cachedData) => {
if (err) return res.status(500).send(‘Server error’);

if (cachedData) {
console.log(‘Serving from Redis cache’);
return res.json(JSON.parse(cachedData));
}

console.log(‘Fetching new data’);
// Simulate data fetching
const newData = { message: ‘This is fresh data!’ };

// Store new data in Redis cache with an expiration time of 60 seconds
redisClient.setex(key, 60, JSON.stringify(newData), (err) => {
if (err) return res.status(500).send(‘Server error’);

res.json(newData);
});
});
});

// Start the server
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توضیح:

Setup Redis Client: redis.createClient() یک کلاینت Redis برای اتصال به سرور Redis ایجاد می کند. هر گونه خطای اتصال را گوش می دهد.
بررسی کش: هنگامی که یک درخواست GET به /api/data ارسال می شود، سرور ابتدا بررسی می کند که آیا داده ها در Redis با استفاده از redisClient.get() ذخیره شده اند یا خیر.

اگر داده ها در حافظه پنهان ذخیره شوند، به مشتری بازگردانده می شوند.

اگر داده‌ها ذخیره نشده باشند، سرور واکشی داده‌های جدید را شبیه‌سازی می‌کند، این داده‌ها را با redisClient.setex() در Redis ذخیره می‌کند (زمان انقضا را 60 ثانیه تنظیم می‌کند)، و سپس به مشتری پاسخ می‌دهد.

Start Server: سرور به پورت 3000 گوش می دهد و هنگام راه اندازی پیامی را ثبت می کند.

اجرای سرور:

سرور Redis را راه اندازی کنید: مطمئن شوید که Redis در حال اجرا است. شما می توانید آن را با:

redis-server

سرور Node.js را اجرا کنید:

node app.js

تست API:

درخواست اول: یک درخواست GET به http://localhost:3000/api/data با استفاده از یک مرورگر یا ابزاری مانند Postman ارسال کنید. پاسخ در Redis واکشی و ذخیره می شود.

درخواست های بعدی: انجام همان درخواست GET در عرض 60 ثانیه، داده ها را از حافظه پنهان Redis بازیابی می کند.

این مثال نحوه ادغام کش Redis را با Node.js API برای بهبود عملکرد با کاهش نیاز به واکشی مکرر داده از منبع نشان می دهد.

برای نشان دادن نحوه استفاده از Redis در یک برنامه Node.js برای رسیدگی به درخواست‌های API، یک مثال ساده را نشان می‌دهم که در آن از Redis برای ذخیره کردن پاسخ یک درخواست API استفاده می‌شود.

راه اندازی:

  1. Install Redis: مطمئن شوید که Redis نصب و اجرا شده است.

  2. یک پروژه Node.js جدید ایجاد کنید:

mkdir redis-api
cd redis-api
npm init -y
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  1. نصب بسته های مورد نیاز:
npm install express redis
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

کد مثال:

  1. یک فایل app.js با کد زیر ایجاد کنید:
const express = require('express');
const redis = require('redis');
const app = express();
const port = 3000;

// Connect to Redis
const redisClient = redis.createClient();

redisClient.on('error', (err) => {
    console.error('Redis error:', err);
});

// Middleware to handle JSON request bodies
app.use(express.json());

// Handle GET request to /api/data
app.get('/api/data', (req, res) => {
    const key = 'dataKey';

    // Check if data is in Redis cache
    redisClient.get(key, (err, cachedData) => {
        if (err) return res.status(500).send('Server error');

        if (cachedData) {
            console.log('Serving from Redis cache');
            return res.json(JSON.parse(cachedData));
        }

        console.log('Fetching new data');
        // Simulate data fetching
        const newData = { message: 'This is fresh data!' };

        // Store new data in Redis cache with an expiration time of 60 seconds
        redisClient.setex(key, 60, JSON.stringify(newData), (err) => {
            if (err) return res.status(500).send('Server error');

            res.json(newData);
        });
    });
});

// Start the server
app.listen(port, () => {
    console.log(`Server running at http://localhost:${port}`);
});



وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توضیح:

  1. Setup Redis Client: redis.createClient() یک کلاینت Redis برای اتصال به سرور Redis ایجاد می کند. هر گونه خطای اتصال را گوش می دهد.

  2. بررسی کش: هنگامی که یک درخواست GET به /api/data ارسال می شود، سرور ابتدا بررسی می کند که آیا داده ها در Redis با استفاده از redisClient.get() ذخیره شده اند یا خیر.

اگر داده ها در حافظه پنهان ذخیره شوند، به مشتری بازگردانده می شوند.

اگر داده‌ها ذخیره نشده باشند، سرور واکشی داده‌های جدید را شبیه‌سازی می‌کند، این داده‌ها را با redisClient.setex() در Redis ذخیره می‌کند (زمان انقضا را 60 ثانیه تنظیم می‌کند)، و سپس به مشتری پاسخ می‌دهد.

  1. Start Server: سرور به پورت 3000 گوش می دهد و هنگام راه اندازی پیامی را ثبت می کند.

اجرای سرور:

  1. سرور Redis را راه اندازی کنید: مطمئن شوید که Redis در حال اجرا است. شما می توانید آن را با:

redis-server

  1. سرور Node.js را اجرا کنید:

node app.js

  1. تست API:

درخواست اول: یک درخواست GET به http://localhost:3000/api/data با استفاده از یک مرورگر یا ابزاری مانند Postman ارسال کنید. پاسخ در Redis واکشی و ذخیره می شود.

درخواست های بعدی: انجام همان درخواست GET در عرض 60 ثانیه، داده ها را از حافظه پنهان Redis بازیابی می کند.

این مثال نحوه ادغام کش Redis را با Node.js API برای بهبود عملکرد با کاهش نیاز به واکشی مکرر داده از منبع نشان می دهد.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا