• Peykanielaheh@gmail.com
  • ۰
    سبد خرید
      هیچ محصولی در سبد خرید وجود ندارد.
    ۰
    سبد خرید
      هیچ محصولی در سبد خرید وجود ندارد.

    کش چیست ؟

    کش چیست؟

    کش یک حافظه دیجیتال و میانی است که داده های دسترسی قبلی را برای استفاده مجدد بعدی حفظ می کند. پرسش‌های زیر را می‌توان مستقیماً از حافظه پنهان بدون نیاز به تماس با برنامه واقعی پاسخ داد. یک مورد معمول استفاده، مرورگرهای وب است: هر مرورگر کش مخصوص به خود را دارد که می تواند به طور موقت محتوای وب سایت خاصی را ذخیره کند. هنگامی که این وب سایت دوباره در زمان دیگری بازدید می شود، می توان آن را سریعتر بارگیری کرد، زیرا داده های حفظ شده مستقیماً از حافظه پنهان درخواست می شوند، نه از سرور.

    تعریف کش چیست

    کش: کش (تلفظ “نقد”) یک حافظه میانی است که داده ها را برای دسترسی مجدد حفظ می کند. زمان مورد نیاز برای دسترسی مجدد به داده ها را کاهش می دهد. کش ها یک لایه شفاف بین کاربر و منبع واقعی داده ها را نشان می دهند. فرآیند ذخیره سازی داده ها در حافظه نهان کش نامیده می شود.

    برای نشان دادن مفهوم کش، بیایید مثال آنالوگ زیر را از پزشکی در نظر بگیریم:

    یک درمان دندانپزشکی یا عمل جراحی را تصور کنید. پزشک از دستیار ابزاری مانند چاقوی جراحی، ضدعفونی کننده یا بانداژ می خواهد. اگر ظرف قبلاً گذاشته شده باشد، دستیار می تواند فوراً به درخواست پاسخ دهد و آن را به پزشک تحویل دهد. در غیر این صورت، دستیار باید ظروف را در کابینت پزشکی بیابد و آن را به پزشک منتقل کند. پس از استفاده، دستیار برای استفاده مجدد سریع و بعدی، ظروف را نزدیک دست نگه می دارد.

    ظروف فردی از نظر استفاده کاملاً بی ربط نیستند: به عنوان مثال، اگر پزشک درخواست ماده ضدعفونی کند، احتمالاً به یک سواب نیز نیاز خواهد داشت. سوزن بدون بخیه نیز بی فایده است. دستیار منابع مرتبط را در دسترس نگه می دارد تا زمان لازم برای بازیابی آنها را به حداقل برساند.

    همانطور که می بینید، نگه داشتن منابعی که اغلب مورد نیاز هستند یا با هم استفاده می شوند، یک عمل بسیار مفید و معمولی است. در دنیای دیجیتال، همه این فرآیندها تحت عنوان “کش کردن” قرار می گیرند.

    هدف از کش چیست؟

    هدف اصلی یک کش کاهش زمان دسترسی به داده های مهم است. داده های “مهم” به این معنی است:

    • داده‌هایی که اغلب مورد نیاز است: در این مورد، دسترسی به داده‌ها از ذخیره‌سازی کندتر زیر حافظه پنهان ناکارآمد خواهد بود. در عوض، داده ها از حافظه پنهان با زمان های دسترسی سریع تر تامین می شوند.
    • داده هایی که برای تولید نیاز به یک فرآیند زمان بر دارند: برخی از داده ها نتیجه پردازش محاسباتی فشرده هستند یا داده ها باید از قسمت های مختلف جمع آوری شوند. در اینجا، منطقی است که داده های نهایی را در یک کش برای استفاده مجدد بعدی ذخیره کنید.
    • تکه‌هایی از داده‌ها که با هم مورد نیاز هستند: بارگیری داده‌های مرتبط تنها پس از درخواست شما ناکارآمد خواهد بود. در عوض، نگهداری همه داده های موجود با هم در حافظه پنهان بسیار موثرتر است.

    نحوه کار یک کش چیست ؟

    حالا بیایید با دقت بیشتری به نحوه کار کش ها نگاه کنیم. همچنین نحوه عملکرد حافظه میانی و محل استفاده از آن را نیز پوشش خواهیم داد.

    فرآیند حافظه پنهان اساسی کش چیست

    • یک پرس و جو برای یک منبع به سیستم یا نرم افزاری که دارای کش است ارسال می شود.
    • اگر منبع قبلاً در حافظه نهان موجود باشد، از حافظه پنهان ارائه می شود. این به عنوان “یک ضربه کش” شناخته می شود.
    • اگر منبع در حافظه پنهان یافت نشد، ابتدا از سیستم زیرین به حافظه میانی بارگیری می شود و سپس ارائه می شود. از این به عنوان “فقدان حافظه پنهان” یاد می شود.
    • اگر همان منبع مجدداً در آینده درخواست شود، می‌توان آن را به‌عنوان یک ضربه پنهان از کش تأمین کرد.
    کش چیست

    نمودار فرآیند زیربنایی را نشان می دهد: یک کلاینت درخواستی را برای یک منبع به سرور ارسال می کند (1). در صورت ضربه به حافظه پنهان، منبع از قبل در حافظه پنهان موجود است و بلافاصله در اختیار مشتری قرار می گیرد. در صورت وجود “فقدان حافظه نهان”، منبع درخواستی در حافظه نهان موجود نیست و بنابراین از سیستم زیربنای سرور (یک پایگاه داده در این مثال) بازیابی می شود (2). به محض در دسترس بودن منبع (3)، در اختیار مشتری (4) قرار می گیرد و برای استفاده مجدد در حافظه پنهان ذخیره می شود.

    محل قرار گیری کش چیست ؟

    ویژگی اصلی یک کش این است که در پس زمینه پنهان است. این حتی با منشأ کلمه منعکس شده است: کلمه “cache” از فرانسوی گرفته شده و به معنای “محل اختفا” است.

    حافظه نهان در مقابل رسانه ذخیره سازی داده واقعی قرار دارد و برای کاربر نامرئی است. این بدان معنی است که، به عنوان یک کاربر، نیازی نیست که چیزی در مورد ویژگی های داخلی کش بدانید. شما پرس و جوهایی را به ذخیره سازی داده ارسال می کنید بدون اینکه متوجه شوید که واقعاً توسط حافظه پنهان پاسخ داده می شود.

    معمولا چند کش وجود دارد؟

    به طور کلی، طیفی از کش ها در یک سیستم دیجیتال فعال هستند.

    دسترسی به یک وب سایت را در نظر بگیرید: مرورگر شما با یک سرور ارتباط برقرار می کند و طیف وسیعی از منابع را بازیابی می کند. قبل از اینکه محتویات وب‌سایت در مرورگر برای شما نمایش داده شود، برخی از این فرآیند احتمالاً توسط حافظه‌های پنهان زیر انجام می‌شود: حافظه پنهان پردازنده، حافظه پنهان سیستم و حافظه پنهان مرورگر در دستگاه شما، همچنین CDN (شبکه تحویل محتوا) و کش وب در دستگاه شما.

    مزایا و معایب کش چیست ؟

    اینکه آیا یک برنامه کش مخصوص به خود را دارد یا نه، معمولاً به صلاحدید توسعه دهنده بستگی دارد. ما مزایا و معایب راه حل ذخیره سازی متوسط را در زیر خلاصه کرده ایم.

    مزیت: افزایش بسیار زیاد سرعت

    استفاده از کش می تواند افزایش سرعت قابل توجهی را به عنوان یک مزیت ارائه دهد. افزایش سرعت صد برابر غیر معمول نیست. با این حال، این افزایش سرعت تنها زمانی تحقق می یابد که به همان داده ها به طور مکرر دسترسی داشته باشید. بنابراین، این مزیت واقعاً چقدر بزرگ است، بسته به کاربرد به طور قابل توجهی متفاوت است.

    مزیت: کاهش بار برای سیستم پشت حافظه پنهان

    از آنجایی که یک کش داده ها را بسیار سریع تحویل می دهد، بار روی سیستم زیربنایی به میزان قابل توجهی کاهش می یابد.

    مثالی از یک صفحه HTML پویا تولید شده از یک قالب PHP را تصور کنید: برای تولید صفحه به پایگاه داده دسترسی پیدا می شود. این دسترسی نسبتا وقت گیر است. علاوه بر این، مقیاس پذیری سرورهای پایگاه داده بی اهمیت نیست – به همین دلیل است که دسترسی به پایگاه داده می تواند به عنوان یک گلوگاه برای توان عملیاتی کلی یک سیستم عمل کند. در این مورد، ذخیره صفحه HTML تولید شده در کش وب به منظور آزاد کردن ظرفیت سرور پایگاه داده برای کارهای دیگر مفید است.

    نقطه ضعف: باطل کردن حافظه پنهان دشوار است

    اصطلاح عدم اعتبار کش به تصمیم زمانی اشاره دارد که داده های ذخیره شده دیگر به روز نیستند و باید تمدید شوند. مثال آنالوگی را که قبلاً آوردیم به یاد بیاورید: دستیار با در دسترس نگه داشتن منابع استفاده شده برای استفاده مجدد، به عنوان حافظه پنهان پزشک عمل می کند. با این حال، از آنجایی که تنها فضای محدودی در سینی ظروف موجود است، دستیار به طور مداوم در طول کار مرتب می کند. ظروف از قبل استفاده شده باید حذف شوند و ظروف جدید اضافه شوند. در برخی شرایط، دستیار ظرفی را که ممکن است پزشک دوباره به آن نیاز داشته باشد، برمی دارد. این امر که به دنیای دیجیتال مربوط می شود، منجر به از دست دادن حافظه پنهان می شود. سپس دستیار باید دوباره زمانی را صرف جستجوی ظروف ضروری کند.

    از آنجایی که از دست دادن حافظه پنهان زمان‌بر است، استراتژی ذخیره‌سازی بهینه با هدف اجتناب از آن‌ها تا جایی که ممکن است است. از سوی دیگر، این می‌تواند به این معنا باشد که حافظه نهان داده‌هایی را که دیگر به‌روز نیستند، فراهم می‌کند. این مشکل زمانی تشدید می‌شود که چندین حافظه پنهان مرتب شده در یک سلسله مراتب فعال باشند. سپس تعیین اینکه چه زمانی داده‌های موجود در کش باید به‌عنوان به‌روز علامت‌گذاری شوند، می‌تواند دشوار باشد.

    اگر حافظه پنهان داده‌هایی را ارائه دهد که دیگر جاری نیستند، اغلب می‌تواند منجر به مشکلات عجیبی در سمت ارائه‌دهنده شود: وب‌سایت بازدید شده ممکن است خطاهای نمایشی را نشان دهد یا قطعاتی از گذشته ممکن است برای درخواست داده ارائه شود. گاهی اوقات تعیین منشأ دقیق مسائل ممکن است دشوار باشد. بنابراین پاک کردن کش بهترین راه حل برای این مشکلات است.

    انواع کش چیست ؟

    کش ها شامل قطعات سخت افزاری یا نرم افزاری هستند. کش سخت افزاری یک حافظه بافر سریع است که زمان دسترسی به ذخیره سازی داده های زیرین را کاهش می دهد. در اصل، کش های سخت افزاری در مقایسه با اندازه کلی ذخیره سازی داده های تسریع شده همیشه بسیار کوچک هستند.

    در مقابل، حافظه پنهان پیاده‌سازی شده در نرم‌افزار حتی می‌تواند از اندازه منابع اصلی فراتر رود. این به ویژه زمانی که چندین نسخه از یک منبع در حافظه پنهان یافت می شود، بیشتر است.

    در اینجا مروری بر منابعی است که اغلب به حافظه پنهان مجهز هستند. اندازه حافظه نهان، زمان دسترسی به حافظه نهان، و همچنین سرعت دسترسی به منبع بدون ذخیره سازی میانی را نشان می دهد.

    منبعحافظه پنهاناندازه کشزمان دسترسی با کشچقدر کندتر بدون کش
    ذخیره سازی اصلیکش سطح 1 (سخت افزار)ده ها کیلوبایت (KB)کمتر از یک نانوثانیه (ns)200 ×
    هارد دیسککش هارد (سخت افزار)ده ها مگابایت (MB)صدها نانوثانیه (ns)100 ×
    مرورگرکش مرورگر (نرم افزار)چندین گیگابایت (گیگابایت)ده ها میلی ثانیه (ms)10–100 ×
    وب سایت هاCDN، کش صفحه Google، Wayback Machine (نرم افزار)هزاران ترابایت (پتابایت، PB)چند ثانیه (ثانیه)2–5 ×

    کش های سخت افزاری

    حافظه نهان پردازنده

    یک پردازنده مدرن فوق العاده سریع کار می کند. فرآیندهای روی تراشه فقط به کسری از نانوثانیه نیاز دارند – این یک میلیاردیم ثانیه است! در مقابل، دسترسی به حافظه اصلی در صدها نانوثانیه نسبتاً کند است. به همین دلیل، پردازنده های مدرن سلسله مراتبی از حافظه پنهان پردازنده دارند.

    یک کش در سریعترین حافظه نهان پردازنده – معروف به “کش سطح 1” یا “کش L1” – حدود 200 برابر سریعتر از دسترسی به حافظه اصلی است.

    کش هارد دیسک

    یک هارد دیسک با چندین هزار دور در دقیقه می چرخد. هد نوشتن-خواندن روی دیسک ها حرکت می کند و داده ها را به صورت متوالی می خواند. از آنجایی که این یک فرآیند فیزیکی است، دسترسی به هارد دیسک نسبتا کند است.

    بنابراین، هر هارد دیسک کش کوچک خود را دارد. به این ترتیب، حداقل داده هایی که اغلب مورد استفاده قرار می گیرند – مانند بخش هایی از سیستم عامل – همیشه لازم نیست به طور ناکارآمد از هارد دیسک خوانده شوند.

    حافظه پنهان هارد دیسک اجازه می دهد تا داده های ضروری حدود 100 برابر سریعتر بارگذاری شوند. برای کاربر، به نظر می‌رسد که این داده‌ها «فوراً» ارائه می‌شوند.

    کش های نرم افزاری

    کش مرورگر

    هنگام بازدید از یک وب سایت، تعداد زیادی از داده های صفحه وب به طور موقت در دستگاه بازدید کننده ذخیره می شود. علاوه بر محتوای واقعی، این شامل منابع مختلفی مانند تصاویر، شیوه نامه ها و فایل های جاوا اسکریپت است. بسیاری از این منابع معمولاً در چندین صفحه مورد نیاز هستند. برای سرعت بخشیدن به بارگذاری صفحه، ذخیره این منابع اغلب مورد نیاز در حافظه پنهان مرورگر در دستگاه محلی مفید است.

    همانطور که کش مرورگر برای گشت و گذار در اینترنت کاربردی است، می تواند مشکلاتی نیز ایجاد کند. به عنوان مثال، اگر توسعه دهندگان تغییراتی را در یک منبع وب سایت ایجاد کرده باشند، اما کش مرورگر همچنان حاوی نسخه قدیمی منبع است. در این حالت ممکن است خطاهای نمایشی رخ دهد. یک راه حل در اینجا پاک کردن کش مرورگر است.

    کش صفحه گوگل

    عملکرد “در کش” گوگل صفحات بسیاری از وب سایت ها را برای دسترسی آماده نگه می دارد. پس از آن می توان به صفحات نیز دسترسی داشت، حتی زمانی که وب سایت اصلی آفلاین است. وضعیت صفحات با آخرین تاریخ نمایه سازی توسط Googlebot مطابقت دارد.

    کش DNS

    Domain Name System یا به اختصار DNS یک سیستم توزیع شده جهانی برای تبدیل دامنه های اینترنتی به آدرس های IP (و بالعکس) است. DNS یک آدرس IP برای نام دامنه ارائه می دهد. به عنوان مثال، آدرس IP 74.208.255.134 برای دامنه ionos.com برگردانده شده است.

    پرس و جوهایی که قبلاً به DNS پاسخ داده شده اند به صورت محلی در دستگاه کاربر در حافظه پنهان DNS ذخیره می شوند. به این ترتیب، هر رزولوشن همیشه به همان اندازه سریع است.

    اما استفاده از کش DNS نیز می تواند منجر به مشکلاتی شود – مثلاً اگر آدرس IP مرتبط با یک دامنه به دلیل مهاجرت سرور تغییر کرده باشد، اما کش DNS محلی حاوی آدرس قدیمی است. در این صورت تلاش برای ارتباط با سرور ناموفق خواهد بود. راه حل اینجا پاک کردن کش DNS است.

    شبکه تحویل محتوا (CDN)

    شبکه‌های توزیع محتوا در سطح جهانی اکثریت داده‌های وب‌سایت‌های محبوب را در آنچه به عنوان «گره‌های لبه» شناخته می‌شوند، ارائه می‌کنند. این گره های لبه نشان دهنده داده های موجود در “لبه” اینترنت هستند. گره ها در نزدیکی کاربر قرار دارند و از نظر فنی طوری طراحی شده اند که داده ها را در سریع ترین زمان ممکن ارائه دهند. یک CDN مانند یک کش برای داده‌های وب‌سایت‌های موجود در آن کار می‌کند. این امر زمان دسترسی را کاهش می دهد، به ویژه برای سرویس های پخش و وب سایت ها.

    وب کش

    کش وب اسناد وب مانند صفحات HTML، تصاویر، شیوه نامه ها یا فایل های جاوا اسکریپت را برای استفاده مجدد فراهم می کند. کش های وب مدرن مانند Varnish و Redis داده های پرکاربرد را در حافظه کاری ذخیره می کنند و در نتیجه هدفشان دستیابی به زمان پاسخ های کوتاه است.

    هنگامی که داده ها دوباره درخواست می شوند، پاسخ فقط به دسترسی بسیار سریع به حافظه نیاز دارد. بنابراین زمان پاسخ دهی به شدت کاهش می یابد و بار سیستم های پشت حافظه پنهان مانند وب سرور و پایگاه داده نیز کاهش می یابد. دیگر کش های وب معروف شامل OPcache و جایگزین PHP Cache (APC) است.

    کش چیست

    ترجمه شده توسط سایت دریای شرق از سایت
    کپی بدون ذکر نام و لینک سایت دریای شرق ممنوع است !

    About The Author