Caching چیست؟
Caching فرآیندی است که در آن یک کپی از دادهها در یک فضای ذخیرهسازی، بهشکل موقت ذخیره میشوند تا سرعت دسترسی به آنها افزایش یابد.
برای دسترسی به اطلاعات، باید آنها را از محلی که ذخیره شدهاند، فراخواند. مدتزمانی که طول میکشد تا این فراخوانی انجام شود، به سرعت و کیفیت دستگاهی که اطلاعات در آن ذخیره شدهاند، بستگی دارد. Cache یک حافظهی بسیار پرسرعت است که خارج از دستگاه ذخیرهسازی اصلی و در مسیر آن قرار میگیرد و بخشی از دادهی آن را در خود کپی میکند تا هنگام درخواست این داده، بدون آنکه آن را از دستگاه اصلی فراخوانی کند، در اختیار دخواستکننده قرار دهد. این کار سبب کاهش زمان دسترسی به اطلاعات میشود.
کاربردهای Caching
Cache در تکنولوژیهای گوناگونی استفاده میشود:
- سیستم عامل: استفاده از چند لایه cache برای بهبود عملکرد CPU
- شبکهی توزیع محتوا (CDN): زمانی که یک وبسایت از نقاط مختلف جهان بازدید دارد، داشتن چندین زیرساخت از سرورهای میزبان دادههای این وبسایت در سراسر جهان، امری معقول و بهینه نیست. راهحل مناسب برای چنین وبسایتهایی استفاده از شبکهی توزیع محتوا (CDN) است. CDN با cache کردن اطلاعات وبسایت (مانند ویدیو، صفحات وب، تصاویر و ...) در سرورهای لبهی خود (محل اتصال به شبکه سایر شرکتها) این امکان را فراهم میکند که کاربران آن وبسایت، از نزدیکترین نقطهی جغرافیایی به محتوای وبسایت دسترسی داشته باشند. بهاین ترتیب، سرعت دسترسی به وبسایت به طرز چشمگیری افزایش پیدا میکند.
- DNS: برای دریافت IP یک دامنه، باید آن را از DNS درخواست کرد. با cache کردن نتیجهی یک درخواست در سرورهای DNS، میتوان درخواستهای بعدی را به سرعت پاسخ داد.
- اپلیکیشنهای وب: این اپلیکیشنها API دارند و میتوان نتیجهی درخواست API را cache کرد.
CDN Caching
سرورهای لبهی CDN که وظیفهی cache دادهها را برعهده دارند، میان کاربران و سرور اصلی میزبان سایت قرار میگیرند و درخواست کاربران برای مشاهدهی محتوای آن وبسایت، ابتدا از سرورهای لبه CDN عبور میکنند.
هنگامی که کاربری بخواهد محتوای یک وبسایت را مشاهده کند، سرور لبه CDN با دریافت درخواست، نخست cache خود را برای یافتن دادهی مورد درخواست برسی میکند. اگر آن را در cache خود بیابد که بلافاصله دادهی cache شده را در پاسخ، برای درخواستکننده ارسال میکند. اما اگر این داده را در cache خود نیابد، یک نسخه از دادهی مورد درخواست را از سرور اصلی میزبان سایت درخواست میکند و ضمن ارسال آن برای کاربر، یک کپی از آن را نیز در خود ذخیره میکند. به این ترتیب، دسترسیهای بعدی به آن داده با سرعت بیشتری انجام میشود.
مزایای CDN Caching
- کاهش زمان دسترسی: با استفاده از cache، شاهد کاهش زمان دسترسی خواهیم بود.
- کاهش بار از روی سرورهای اصلی: در CDN caching، درخواستها بهوسیلهی سرورهای لبهی CDN پاسخ داده میشوند و به این ترتیب حجم ترافیک ارسالی به سمت سرور اصلی میزبان سایت کاهش مییابد.
- افزایش امنیت: چون سرور اصلی میزبان سایت پشت سرورهای لبهی CDN قرار میگیرد و درخواستها به جای سرور اصلی، بهوسیلهی سرورهای لبه پاسخ داده میشوند، بنابراین ترافیکهای مخرب سمت سرور اصلی میزبان سایت نمیروند و از حملاتی مانند DDoS جلوگیری میشود.