حافظه کش Cache یا حافظه پنهان چیست؟
حافظه کش یا Cache Memory که حافظه نهان یا حافظه پنهان نیز نامیده می شود، یک حافظه بسیار پر سرعت از نوع SRAM می باشد و به منظور جلوگیری از تاخیر زمانی بین پردازنده و حافظه RAM مورد استفاده قرار می گیرد. اندازه، قیمت و سرعت حافظه کش در مقایسه با حافظه رم بیشتر است و مقداری از داده های موجود در حافظه رم را در خود ذخیره می کند تا امکان دسترسی سریع پردازنده به آن داده ها را فراهم نماید.
مقایسه حافظه کش با حافظه اصلی
حافظه های DRAM به عنوان حافظه های اصلی مورد استفاده قرار می گیرند و وظیفه انجام عملیات محاسباتی روی داده هایی که از دستگاه های ذخیره سازی دریافت می کنند را بر عهده دارند. حافظه DRAM و حافظه کش هر دو از نوع حافظه های فرار یا Volatile Memory هستند، به این معنی که با قطع جریان برق، اطلاعات موجود روی آن ها از بین می رود و پاک می شود. محل نصب حافظه DRAM روی مادربرد بوده و پردازنده به وسیله باس با آن ارتباط برقرار می کند.
سرعت حافظه های DRAM معمولا نصف یا کمتر از سرعت حافظه های کش سطح یک و سطح دو و حتی سطح سه (L1،L2 ، L3) می باشد. قیمت این حافظه ها نیز در مقایسه با حافظه های کش کمتر است. حافظه های DRAM بایستی در هر چند هزارم ثانیه به روز گردند. حافظه کش نیز یک حافظه با دسترسی تصادفی است اما نیازی به Refresh ندارد. این حافظه ها به صورت مستقیم روی پردازنده وجود دارند و موجب دسترسی بسیار سریع پردازنده به مکان های حافظه می شوند. در واقع پردازنده با کمک حافظه های کش می تواند در عرض چند نانو ثانیه به داده مورد نظر دست یابد.
حافظه های SRAM نسبت به حافظه های DRAM سریع تر عمل می کنند اما دارای پیچیدگی بیشتری نیز هستند، به همین دلیل قیمت بالاتری دارند.
حافظه کش سرور
سرورها به کامپیوتر های همیشه روشن گفته می شود که وظیفه انتقال داده از یک کامپیوتر به اینترنت یا شبکه داخلی را بر عهده دارند. در واقع وظیفه سرور به اشتراک گذاری منابع اطلاعاتی می باشد.
با توجه به کاربرد و مزایای حافظه کش و با توجه به حساس بودن وظیفه سرور، اطلاعاتی که زیاد مورد استفاده قرار می گیرند مانند WebPage های پربازدید در حافظه کش قرار می گیرند تا در زمان مراجعات بعدی توسط کاربر و درخواست بازید سایت، سرعت بازبینی افزایش یابد.
به عنوان مثال سایت Google را در نظر بگیرید که همه روزه کاربران بسیار زیادی به آن مراجعه می نمایند. حال اگر برای درخواستی که توسط کاربر برای مراجعه به سایت ایجاد می شود، به سایت اصلی گوگل مراجعه شود، هر بار مراجعه موجب مصرف پهنای باند شده و به دلیل افزایش درخواست ها به سرور، ترافیک ایجاد می شود و سرعت دسترسی به سایت به صورت چشمگیری کاهش می یابد.
اما اگر از حافظه کش سرور یا Cache Server استفاده شود، در صورتی که برای اولین بار درخواست به سرور ارسال شود، به عنوان مثال مشاهده سایت گوگل، پاسخ درخواست از وب سرر اصلی دریافت می شود که این پاسخ موجب صرف زمان و پهنای باند می شود، سپس این اطلاعات در حافظه کش سرور ذخیره می شود و در صورتی که کاربر دیگری همین درخواست (مشاده وب سایت گوگل) را داشته باشد، از طریق کش سرور به آن دسترسی خواهد داشت و دیگر نیازی به مراجعه به وب سرور اصلی نیست.
Cache Server عمدتا به وسیله ISP ها و یا شرکت های ارائه دهنده خدمات هاستینگ مورد استفاده قرار می گیرند. از مزایای استفاده از کش سرور می توان به افزایش سرعت دسترسی، کاهش مصرف پهنای باند و در نهایت جلب رضایت مشتری اشاره کرد.
گفتنی است که Cache Serverها در مدت زمان های معین تازه سازی یا Refresh می شوند تا اگر تغییراتی روی داده ها و اطلاعات و یا وب سایت ها به وجود آمده باشد، قابل مشاهده باشند.
گاهی اوقات می توانید Cache Server ها را فریب دهید یا به اصطلاح گول بزنید تا اطلاعات را از سرور اصلی دریافت نمایید، به عنوان مثال زمانی که محتویات داخل یک صفحه وب دچار تغییرات شده است اما به دلیل کش شدن در سرورقابل مشاهده نیست. با ایجاد تغییرات کوچک در ادرس URL مربوطه می توانید درخواست خود را از وب سرور اصلی دریافت کنید. مثلا به جای آدرس http://dorka.com آدرس http://dobrka.com/index.php را وارد کنید. در این حالت کش سرور تفاوت در آدرس را متوجه می شود و خیال می کند آدرس جدیدی وارد شده و درخواست را از وب سرور اصلی بار گذاری می نماید.