برنامه نویسی

نحوه اجرای حافظه پنهان در یک برنامه پشته Mern برای زمان بار سریعتر

ذخیره سازی یک تکنیک بهینه سازی مهم است که به بهبود عملکرد و مقیاس پذیری یک MERN (MongoDB ، Express ، React ، Node.js) کمک می کند. با ذخیره کردن داده های مکرر در حافظه یا سایر سیستم های ذخیره سازی سریع ، ذخیره سازی پرس و جوهای پایگاه داده را کاهش می دهد و زمان پاسخ را سرعت می بخشد. این راهنما به بررسی استراتژی های مختلف ذخیره سازی و نحوه اجرای آنها در یک برنامه Mern Stack می پردازد.

1. چرا ذخیره سازی مهم است

  • زمان اجرای بار بانک اطلاعاتی و زمان اجرای پرس و جو را کاهش می دهد.
  • تجربه کاربر را با زمان پاسخ سریعتر افزایش می دهد.
  • با ارائه داده های ذخیره شده ، درخواست API را کاهش می دهد.
  • مقیاس پذیری را با استفاده از ترافیک بیشتر با منابع کمتری بهبود می بخشد.

2. انواع انبارها

  • حافظه پنهان سمت مشتری: داده ها را در مرورگر با استفاده از LocalStorage ، SessionStorage یا IndexedDB ذخیره می کند.
  • حافظه پنهان سمت سرور: از راه حل های مبتنی بر حافظه مانند Redis یا حافظه پنهان حافظه در Node.js. استفاده می کند.
  • ذخیره سازی پرس و جو بانک اطلاعاتی: CACHES DATABASE پرس و جو برای کاهش درخواست های اضافی.
  • ذخیره سازی شبکه تحویل محتوا (CDN): دارایی های استاتیک مانند تصاویر ، CSS و پرونده های JavaScript.

3. اجرای ذخیره سازی در یک برنامه مرن

الف) ذخیره در کنار مشتری در React

برنامه های React می توانند پاسخ های API را با استفاده از ذخیره مرورگر ذخیره کنند.

مثال با استفاده از LocalStorage:

const fetchData = async () => {
  const cachedData = localStorage.getItem("cachedData");
  if (cachedData) {
    return JSON.parse(cachedData);
  }
  const response = await fetch("/api/data");
  const data = await response.json();
  localStorage.setItem("cachedData", JSON.stringify(data));
  return data;
};
حالت تمام صفحه را وارد کنید

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

ب-حافظه پنهان سمت سرور با redis در node.js

Redis یک فروشگاه با ارزش کلیدی در حافظه است که عملکرد باطن را تقویت می کند.

1. نصب redis و node.js مشتری:

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

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

2. پیکربندی redis در اکسپرس:

const redis = require("redis");
const client = redis.createClient();

client.on("error", (err) => console.error("Redis Error:", err));
حالت تمام صفحه را وارد کنید

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

3. حافظه پنهان را در یک مسیر API اجرا کنید:

const fetchData = async (req, res) => {
  const cacheKey = "dataCache";
  client.get(cacheKey, async (err, cachedData) => {
    if (cachedData) {
      return res.json(JSON.parse(cachedData));
    }
    const data = await fetchFromDatabase();
    client.setex(cacheKey, 3600, JSON.stringify(data));
    res.json(data);
  });
};
حالت تمام صفحه را وارد کنید

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

ج – فروشگاه جستجوی پایگاه داده با MongoDB

MongoDB با استفاده از خطوط لوله جمع ، ذخیره سازی پرس و جو را فراهم می کند.

مثال با استفاده از mongoose:

const mongoose = require("mongoose");

const dataSchema = new mongoose.Schema({
  name: String,
  value: Number,
});

const DataModel = mongoose.model("Data", dataSchema);

const fetchCachedData = async () => {
  const data = await DataModel.find().lean(); // Lean reduces memory usage
  return data;
};
حالت تمام صفحه را وارد کنید

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

D. ذخیره CDN برای دارایی های استاتیک

استفاده از CDN (مانند Cloudflare یا AWS Cloudfront) به منابع استاتیک حافظه پنهان کمک می کند و زمان بار را کاهش می دهد.

مراحل فعال کردن ذخیره سازی CDN:

  1. پرونده های استاتیک را در ارائه دهنده CDN بارگذاری کنید.
  2. هدرهای کنترل حافظه نهان مناسب را در Express تنظیم کنید:
app.use(express.static("public", {
  maxAge: "1d", // Cache files for one day
}));
حالت تمام صفحه را وارد کنید

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

  1. به جای پیوندهای مستقیم سرور ، دارایی ها را از طریق URL های CDN سرو کنید.

پایان

اجرای حافظه پنهان در یک برنامه Mern Stack به طور قابل توجهی عملکرد ، مقیاس پذیری و تجربه کاربر را افزایش می دهد. با استفاده از ذخیره سازی سمت مشتری ، Redis برای حافظه پنهان سرور ، بهینه سازی های MongoDB و ذخیره CDN ، می توانید یک برنامه بسیار کارآمد و سریع بارگذاری بسازید.

اگر از محتوای من لذت می برید و دوست دارید از کار من حمایت کنید ، می توانید یک قهوه برای من بخرید. از حمایت شما بسیار استقبال می شود!

سلب مسئولیت: این محتوا توسط هوش مصنوعی تولید شده است.

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

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

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

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