کش یعنی ذخیرهٔ نتیجهٔ یک محاسبه یا کوئری برای استفادهٔ دوباره. ابزارهای رایج: Redis، Memcached و کش HTTP.
الگوی cache-aside
async function getUser(id) {
const cached = await redis.get("user:" + id);
if (cached) return JSON.parse(cached);
const user = await db.users.findById(id);
await redis.set("user:" + id, JSON.stringify(user), "EX", 300);
return user;
}نکتهها
- TTL: برای هر کلید زمان انقضا بگذارید تا داده کهنه نماند.
- باطلسازی: هنگام تغییر داده، کلید مربوط را حذف یا بهروز کنید.
- هجوم به کش خالی: برای کلیدهای داغ از قفل یا انقضای تصادفی استفاده کنید.
«دو چیز در علوم کامپیوتر سخت است: باطلسازی کش و نامگذاری». پس فقط جایی کش بگذارید که سود اندازهگیریشده دارد.




