الحفر أعمقالتخزين المؤقت

التخزين المؤقت (Cache) في Kawkab JS

يعد التخزين المؤقت (Cache) من التقنيات المهمة التي تساعد في تحسين أداء التطبيقات من خلال تخزين البيانات الأكثر استخدامًا في الذاكرة، مما يقلل من الحاجة إلى إجراء استعلامات متكررة إلى قاعدة البيانات أو مصادر أخرى. في Kawkab JS، يتم توفير واجهة سهلة لاستخدام التخزين المؤقت عن طريق Cache.

كيفية استخدام التخزين المؤقت

1. تخزين البيانات في الذاكرة

يمكنك تخزين البيانات في الذاكرة باستخدام cache.set. على سبيل المثال، إذا كنت بحاجة إلى تخزين الإعدادات المبدئية للتطبيق، يمكنك استخدام الكود التالي:

import { cache, Settings } from "kawkab";
 
// التحقق مما إذا كانت الإعدادات موجودة في التخزين المؤقت
if (!cache.has("settings")) {
  // إذا لم تكن موجودة، قم بتخزينها في التخزين المؤقت
  cache.set("settings", Settings.query().get());
 
  console.log("Settings cached from database!");
}
 
// استرجاع الإعدادات من التخزين المؤقت
const settings = cache.get("settings");
 
return {
  status: true,
  settings: settings,
};

2. استخدام دوال التخزين المؤقت المتاحة

كود التخزين المؤقت الذي أضفناه يعتمد على Cache، وهي توفر واجهة سهلة للتعامل مع الذاكرة المؤقتة. وفيما يلي تفاصيل دوال Cache التي يمكن استخدامها:

2.1. استرجاع البيانات المخزنة في الذاكرة

تسترجع هذه الدالة البيانات المخزنة في الذاكرة بناءً على المفتاح الذي تحدده. إذا كانت البيانات موجودة، سيتم إرجاع القيمة، وإذا لم تكن موجودة سيتم إرجاع undefined.

const cachedData = cache.get("user_profile");
if (cachedData) {
  // التعامل مع البيانات المخزنة
} else {
  // تحميل البيانات من قاعدة البيانات
}

2.2. تخزين البيانات في الذاكرة

تخزن هذه الدالة البيانات في الذاكرة تحت مفتاح معين. يمكن تحديد TTL (الوقت المسموح للبيانات بالبقاء في الذاكرة) بالثواني. إذا لم يتم تحديده، ستظل البيانات في الذاكرة إلى أجل غير مسمى.

cache.set("user_profile", { name: "Ali", age: 30 }, 3600);  // بيانات يتم تخزينها لمدة ساعة

2.3. حذف البيانات المخزنة

لحذف البيانات المخزنة في الذاكرة باستخدام مفتاح معين، يمكن استخدام هذه الدالة.

cache.delete("user_profile");  // حذف البيانات المخزنة

2.4. مسح كافة البيانات المخزنة

تقوم هذه الدالة بمسح جميع البيانات المخزنة في الذاكرة.

cache.clear();  // مسح كافة البيانات من التخزين المؤقت

2.5. التحقق من وجود البيانات في الذاكرة

تتحقق هذه الدالة مما إذا كانت البيانات موجودة في التخزين المؤقت أم لا. تعيد true إذا كانت البيانات موجودة و false إذا لم تكن موجودة.

if (cache.has("user_profile")) {
  console.log("Data found in cache");
} else {
  console.log("Data not found in cache");
}

طريقة عمل Cache Class

إنشاء كلاس تخزين مؤقت

يمكنك إنشاء كلاس تخزين مؤقت باستخدام الأمر التالي:

npm run kawkab cache:make <name> [module]

مثال على ذلك:

npm run kawkab cache:make setting

النتيجة

Cache setting تم إنشاؤه بنجاح في الموديول main.

1️⃣ الكلاس الخاص بك جاهز! يمكنك الآن استيراده مثل هذا:
👉 import { SettingCache } from "../cache/setting"

2️⃣ استخدم كلاس التخزين المؤقت مثل هذا:
👉 SettingCache.cache()

3️⃣ يمكنك تمرير البيانات مثل هذا:
👉 SettingCache.cache({ id: 1, name: 'Hassan' })

4️⃣ للوصول إلى البيانات داخل كلاس التخزين المؤقت:
👉 this.data

مثال على الكلاس

import { BaseCache } from "kawkab";
import { Setting } from "../models";
 
export class SettingCache extends BaseCache {
    static key(): string {
        return "setting"  // تحديد المفتاح الفريد لتخزين البيانات
    }
 
    static handle() {
        return Setting.query().get()
    }
 
    static time(): number {
        return 60 * 60 // 1 hour default TTL
    }
}

الخلاصة

يعتبر التخزين المؤقت أداة قوية لتحسين الأداء وتقليل زمن الاستجابة للتطبيقات. من خلال تخزين البيانات الأكثر استخدامًا في الذاكرة، يمكن للتطبيق تجنب إجراء استعلامات متكررة إلى قاعدة البيانات أو مصادر أخرى. من خلال Cache، يمكنك إدارة البيانات المخزنة بسهولة، مع تخصيص TTL وفترات التحقق من صلاحية البيانات.

المزايا:

  • تحسين سرعة الاستجابة.
  • تقليل العبء على قاعدة البيانات.
  • توفير إعدادات قابلة للتخصيص مثل TTL وفترات التحقق من صلاحية البيانات.

استخدام التخزين المؤقت في تطبيقك سيزيد من الكفاءة والأداء بشكل ملحوظ.