چطوری میشه

کش وردپرس چگونه کار می کند؟

کش وردپرس چگونه کار می کند؟

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

  • حافظه پنهان سمت مشتری و
  • حافظه پنهان سمت سرور

Caching سمت مشتری

The Client-Server Model

یک وب‌سایت حاوی داده‌های غیر متنی و ثابت زیادی است، مانند تصاویر، فایل‌های CSS و Javascript. هنگامی که آنها دانلود شدند، مرورگر شما به اندازه کافی هوشمند است که هر بار که دکمه F5 را فشار می دهید آنها را دوباره دانلود نکنید. به سادگی آن داده‌ها را از حافظه پنهان محلی ارائه می‌کند – یعنی داده‌های کش ذخیره شده در هارد دیسک رایانه شما. به همین دلیل است که توصیه می‌شود هر چند وقت یک‌بار حافظه پنهان مرورگر خود را پاک کنید – این کار باعث صرفه‌جویی در فضا و بهبود عملکرد می‌شود.

این فرآیند استفاده مجدد از داده های حافظه پنهان از رایانه مشتری (یا انتهای مشتری) به عنوان کش سمت مشتری شناخته می شود و تقریباً هر وب سایت مدرنی از آن استفاده می کند و هر مرورگری از آن پشتیبانی می کند. کش سمت کلاینت به جلوگیری از افزونگی داده ها کمک می کند (یعنی بارها و بارها بارگیری همان داده ها) و از این رو در بسیاری از منابع سرور و مهمتر از همه در زمان صرفه جویی می شود!

حافظه پنهان سمت سرور

Server

کش سمت سرور شامل تمام پروتکل های کش مختلف است که در کش وردپرس استفاده می شود. آنها شامل موارد زیر هستند:

  • در حافظه پنهان صفحه
  • در حافظه پنهان جستجوی پایگاه داده
  • ذخیره سازی مبتنی بر شی
  • ذخیره پنهان اپکد

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

ذخیره سازی صفحه

1381630448_HTML-2کش کردن صفحه ساده‌ترین پروتکل از همه پروتکل‌های ذخیره‌سازی است و شرط می‌بندم شما قبلاً در مورد این موضوع می‌دانید. این به سادگی به فرآیند ذخیره فایل های HTML تولید شده به صورت پویا در هارد دیسک یا حافظه سرور (رم) (که معمولاً به عنوان “کش” شناخته می شود) و ارائه آنها از حافظه پنهان (یعنی استفاده مجدد از داده های تولید شده قبلی) هر زمان که درخواستی ارائه می شود اشاره دارد. . این باعث صرفه جویی در هزینه اجرای کد PHP و پرس و جوهای پایگاه داده MySQL می شود.

کش کردن پایگاه داده

Databaseاولین چیزی که در مورد پایگاه های داده باید بدانید این است که آنها بزرگ هستند و نیاز به منابع دارند. آنها کاملاً به معنای واقعی کلمه قلب هر شرکتی هستند – چه آنلاین و چه در غیر این صورت. در مورد وردپرس هم همینطور. هدف یک پایگاه داده ذخیره، به روز رسانی و ارائه کارآمد داده ها است. از آنجایی که آنها معمولاً بزرگ هستند، هر پرس و جو زمان می برد (معمولاً در حد چند صد میکروثانیه). سخت افزار بهتر، تولید نتیجه پرس و جو سریعتر. بهش فکر کن. از آنجایی که وردپرس به شدت به پایگاه داده خود وابسته است، هر از چند گاهی یک پرس و جو می کند. و هنگامی که داده ها در پایگاه داده تغییر نمی کنند، ایجاد پرس و جو برای بازیابی همان داده ها بسیار شبیه بارگیری مجدد همان تصاویر است – همانطور که در بخش Caching سمت مشتری بحث شد. بنابراین ذخیره نتایج یک پرس و جو در حافظه محلی منطقی است، اینطور نیست؟ این ذخیره نتایج جستجوهای پایگاه داده در حافظه محلی، کش پایگاه داده نامیده می شود و یکی از عوامل اساسی در کش وردپرس است.

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

ذخیره شی

Opcodeوردپرس یک سیستم کش داخلی دارد که شامل چندین زیرسیستم (مانند Caching API، Object Cache و Transient API) است. . هسته وردپرس به افزونه ها اجازه می دهد تا این سیستم کش را کنترل کنند تا تعداد تماس های پایگاه داده را کاهش دهند.  این یک موضوع بسیار پیشرفته است و کاملاً به کاربر روزمره مربوط نمی شود.

ذخیره پنهان اپکد

PHP Code بسیار شبیه به کش کردن پایگاه داده که در آن ایده کاهش تعداد پرس و جوهای پایگاه داده است، حافظه پنهان به ذخیره کد PHP کامپایل شده بین هر درخواست اگر به هر فایل PHP نگاهی بیندازید، خواهید دید که کد در واقع فهرستی از دستورالعمل ها برای استفاده کامپایلر است. PHP یک زبان برنامه نویسی شی گرا است و مزایای خود را از منشاء خود دارد! برای اجرای کد PHP، کامپایلر PHP باید ابتدا کد را کامپایل کرده و کد اجرایی را برای اجرای وب سرور تولید کند. کش کردن خروجی کامپایلر PHP برای اجرای چندگانه، همان چیزی است که در حافظه پنهان آپکد وجود دارد. باز هم، این چیزهای داخلی است – چیزهایی که نباید زیاد نگران آنها باشید!

حافظه محلی – اولیه در مقابل ثانویه

Local Storage

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

RAM که مخفف Random Access Memory است، نوعی حافظه فرار است و نسبت به دیسک‌های سخت سریع‌تر است، که یک شکل ذخیره‌سازی ثانویه غیرفرار است. قیمتش هم بیشتره البته همه شما این را می دانید.

جایی که داده‌های کش را ذخیره می‌کنید تفاوت زیادی ایجاد می‌کند. اگر در هارد دیسک باشد، مطمئناً کندتر از زمانی است که در یک RAM ذخیره می شود. باز هم سرعت هارد مهم است. هارد دیسک های سرور از 7200 RPM تا 15000 RPM متغیر است و ممکن است سطوح RAID متفاوتی داشته باشند – RAID 0 سریع ترین و ناامن ترین است، RAID 4 تعادل مناسبی است. SSD هم دارید. از این رو، مکان داده های ذخیره شده در حافظه پنهان تأثیر شدیدی بر سرعت دارد.

برای افرادی که در سرورهای میزبانی مشترک هستند، چاره ای جز ذخیره آن در هارد دیسک ندارید. برای افرادی که سرور اختصاصی یا VPS خود را اجرا می کنند، گزینه اضافی ذخیره کش در حافظه اصلی خود را دارید، که دوباره باید با دقت زیادی انجام شود – پیکربندی نادرست ممکن است منجر به بی ثباتی شود (تمام شدن حافظه رم و غیره). و خرابی های مکرر سرور.

نتیجه گیری

اکنون که درک خوبی از پروتکل‌های مختلف ذخیره‌سازی وردپرس دارید، اجازه دهید به بخش مرکزی سری پست‌های خود برویم – نحوه پیاده‌سازی کش وردپرس.

اگر سؤال یا پیشنهادی برای بهبود این فصل دارید، لطفاً آنها را بپرسید یا به اشتراک بگذارید – مایلیم نظرات شما را بشنویم!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا