آبجکت کش چیست و چرا از آن استفاده کنیم؟

شما باید از آبجکت‌ کش دائمی استفاده نمایید.

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

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

 

 

برای توضیح این موضوع لازم است ابتدا بدانیم؛

کش چیست؟

cache یا همان عبارت فارسی آن “کش” به ذخیره اطلاعات پردازش شده در سایت در یک محل با دسترسی سریع تر گفته می شود.

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

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

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

این موضوع در نهایت منجر به کاهش سرعت لود سایت می شود.

لازم به توضیح است که کش شدن اطلاعات محدود به کوئری نبوده و سیستم کش در اشکال مختلف پیاده سازی می شود؛ به عنوان نمونه:

کش شدن php: این سیستم باعث می شود نتیجه اسکریپت های اجرا شده php در محلی ذخیره شده و زمانی که دوباره همان درخواست به سرور ارسال می شود، به جای اجرای دوباره برنامه و پردازش آن که نیاز به زمان دارد، نتیجه نهایی پردازش که قبلا انجام و ذخیره شده است، نمایش داده شود.

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

 

آبجکت کش وردپرس چیست؟

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

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

از گذشته برنامه و افزونه های کش مانند راکت، سوپر کش، توتال کش و… برای کش شدن نتیجه اسکریپت های پردازش شده استفاده می شود، اما در به روز رسانی های جدید، سیستم آبجکت کش نیز بررسی می شود که برای ذخیره نتایج کوئری های اجرا شده بر روی دیتابیس است.

 

چگونه آبجکت کش را فعال کنیم؟

در ابتدا باید بررسی کنید که آیا سرور میزبان سایت شما از آبجکت کش پشتیبانی می کند یا خیر؟

در صورتی که سرور امکان استفاده از آبجکت کش را ارائه نکند، امکان استفاده از ان را نخواهد داشت. برای اطلاع از این موضوع بهتر است با پشتیبانی سرویس دهنده خود مشورت کنید.

اگر این امکان در سرور ارائه شده است، کافیست از افزونه ها و برنامه هایی که برای این کار ارائه شده است استفاده کنید.

به عنوان نمونه برخی از افزونه هایی که برای php ارائه شده است، memcached، APC، redis هستند. به نظر می رسد همراه با بروز رسانی های وردپرس افزونه wp-rocket هم برای سازگاری و استفاده از آبجکت کش، در حال بهینه سازی است.

 

تاثیر آبجکت کش در سرعت سایت چقدر است؟

این موضوع بسته به نوع سایت، حجم اطلاعات ذخیره شده در دیتابیس، بازدید سایت و بهینه بودن سیستم مدیریت محتوا و کوئری های آن، متفاوت است.

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

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