کش چیست؟

کش: ذخیره موقت داده پرکاربرد نزدیک مصرف‌کننده؛ سطوح مختلف کش و اصل محلی بودن

کش چیست و چرا؟

کش (Cache) = ذخیره داده در جایی سریع‌تر و نزدیک‌تر از منبع اصلی. ایده ساده: «داده‌ای که یک‌بار خواندی، دفعه بعد از جای سریع بگیر».

چرا حیاتی؟ اختلاف سرعت‌ها:

عملزمان تقریبی
حافظه کش L1~۱ نانوثانیه
RAM~۱۰۰ نانوثانیه
SSD Read~۱۶۰ میکروثانیه
شبکه همان دیتاسنتر~۵۰۰ میکروثانیه
شبکه بین‌قاره‌ای~۱۵۰ میلی‌ثانیه!

دیتابیس روی دیسک = کند؛ کش در RAM = ۱۰۰ برگر سریع‌تر!

سطوح کش

  1. مرورگر: HTML/CSS/JS کاربر — HTTP Cache Headers
  2. CDN: محتوای استاتیک در لبه، نزدیک کاربران
  3. اپلیکیشن: Redis/Memcached کنار سرویس — نتایج کوئری، Session
  4. دیتابیس: Buffer Pool داخلی خود DB

قاعده: هرچه «بالاتر» در این هرم، سریع‌تر — اما نرخ hit پایین‌تر (داده کمتری جا می‌شود).

اصول کش خوب

چه چیزی را کش کنیم؟

عالی برای کش ✓بد برای کش ✗
داده خواندنی زیاد، نوشتنی کمداده نوشتنی مکرر
پروفایل کاربر، تنظیماتموجودی حساب! (سازگاری)
نتایج جستجوی پرتکرارداده حساس لحظه‌ای
محتوای استاتیکداده یک‌بار مصرف
نکته: کش «شیرین‌زدگی» مهندسی است — همه‌جا کش نکنید! هر کش = یک منبع «داده کهنه» بالقوه. اول بپرسید: «آیا چند ثانیه کهنگی قابل تحمل است؟»

جمع‌بندی

این مبحث بخشی از دوره آموزش کامل طراحی سیستم (System Design) است.

ابزارهای مرتبط