برنامه نویسی

🚀 برنامه خود را با redis شارژ کنید: حافظه پنهان ، صف و قدرت در زمان واقعی

redis فقط یک حافظه پنهان نیست-این یک فروشگاه ساختار داده با حافظه سریع و سریع است که می تواند انجام دهد خیلی بیشتربشر بیایید به اعماق شیرجه بزنیم redis چیستبا چرا باید از آن استفاده کنیدوت چگونه می توان آن را به طور مؤثر ادغام کردبشر


red redis چیست؟

redis (سرور فرهنگ لغت از راه دور) است فروشگاه داده های منبع باز و حافظه که می تواند به عنوان:

  • بوها مجموعه پایگاه داده
  • بوها مخازن
  • بوها کارگزار پیام
  • بوها سیستم صف

این همه چیز را در حافظه (RAM) ذخیره می کند ، و آن را فوق العاده سریع می کند و پشتیبانی می کند تداوم از طریق عکس های فوری دیسک و پرونده های فقط ضمیمه.


🧠 بررسی اجمالی معماری Redis

در اینجا تصویری ساده از چگونگی تغییر مجدد در پشته برنامه شما آورده شده است:

نمای کلی معماری Redis
مفاهیم اصلی:

  • فروشگاه ارزش کلیدی – مدل داده اصلی.
  • ساختار داده ها – رشته ها ، لیست ها ، مجموعه ها ، مجموعه های مرتب شده ، هش ، جریان.
  • میخانه/فرعی -ارتباط در زمان واقعی بین خدمات.
  • تداوم – داده ها را با عکس های RDB یا AOF ذخیره کنید.
  • در دسترس بودن بالا – از حالت Sentinel یا Cluster استفاده کنید.

🔧 موارد استفاده مشترک

مورد استفاده ویژگی Redis
ذخیره سازی TTL ، حافظه lru
چت در زمان واقعی میخانه/فرعی
صف کار لیست ها ، جریان ها
تابلوهای مجموعه های مرتب شده
انباره جلسه انقضاء ارزش کلیدی

💡 ردیس در مقابل پایگاه داده های سنتی

نشان مجدداً SQL/NOSQL DBS
سرعت 💥 Super Fast (مبتنی بر RAM) کندتر (مبتنی بر دیسک)
تداوم اختیاری (AOF/RDB) همیشه
انواع داده ها غنی (لیست ، مجموعه و غیره) محدود یا فقط JSON
مورد استفاده در زمان واقعی ، ذخیره سازی پرس و جو پیچیده

🛠 تنظیم Redis (بصورت محلی و از طریق Docker)

🔹 نصب محلی

# Ubuntu
sudo apt update
sudo apt install redis-server

# Start Redis
redis-server
حالت تمام صفحه را وارد کنید

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

🔹 داکر

docker run --name redis-server -p 6379:6379 redis
حالت تمام صفحه را وارد کنید

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


💻 redis را با node.js وصل کنید

نصب کردن ioredis یا redis بسته NPM:

npm install ioredis
حالت تمام صفحه را وارد کنید

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

استفاده از نمونه:

import Redis from 'ioredis';

const redis = new Redis();

// Set a key
await redis.set("user:123", "John");

// Get a key
const name = await redis.get("user:123");
console.log(name); // John
حالت تمام صفحه را وارد کنید

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


⚙ مثال ذخیره سازی (اکسپرس + redis)

import express from 'express';
import Redis from 'ioredis';

const app = express();
const redis = new Redis();

app.get('/data', async (req, res) => {
  const cached = await redis.get("data");

  if (cached) {
    return res.send(JSON.parse(cached));
  }

  const data = await fetchFromDatabase();
  await redis.set("data", JSON.stringify(data), 'EX', 60); // Expires in 60 sec
  res.send(data);
});
حالت تمام صفحه را وارد کنید

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


🔁 میخانه/مثال زیر

const pub = new Redis();
const sub = new Redis();

sub.subscribe("chat");

sub.on("message", (channel, message) => {
  console.log(`New message on ${channel}: ${message}`);
});

pub.publish("chat", "Hello Redis!");
حالت تمام صفحه را وارد کنید

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


📷 سایر نمودارهای مفید

Redis از نقشه مورد استفاده کنید

Redis از نقشه مورد استفاده کنید


📊 چه موقع نه برای استفاده از redis

  • وقتی نیاز دارید نمایش داده شد (پیوست ، فیلترها ، تجمع).
  • کی از دست دادن داده ها غیرقابل قبول است (مگر اینکه پایداری به خوبی پیکربندی شود).
  • وقتی با شما کار می کنید مجموعه داده های بزرگ که در حافظه قرار نمی گیرند.

🧪 جایزه: Redis به عنوان محدود کننده نرخ

const key = `rate:${userId}`;
const count = await redis.incr(key);
if (count === 1) await redis.expire(key, 60); // 60 sec window

if (count > 10) {
  return res.status(429).send("Too many requests");
}
حالت تمام صفحه را وارد کنید

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


🚀 نتیجه گیری

redis است رعد و برقبا همه کارهوت ادغام آسان به برنامه های مدرن این که آیا شما از آن برای ذخیره سازی ، صف ها یا میخانه/زیر استفاده می کنید ، می تواند به طور قابل توجهی عملکرد را بهبود بخشید و مقیاس پذیری

کوچک را شروع کنید – آن را به عنوان یک لایه حافظه نهان اضافه کنید – و هیچ وقت قلاب خواهید شد!


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

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

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

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