کش در وردپرس چگونه کار میکند؟
وردپرس یک سیستم مدیریت محتوای داینامیک است. وقتی کاربری صفحهای را باز میکند، کدهای PHP اجرا شده، دیتابیس MySQL خوانده میشود، فایلهای قالب سرهمبندی شده و فایل نهایی HTML تولید و برای کاربر ارسال میگردد. با فعالسازی کش، این فایل HTML یکبار ساخته شده و در حافظه ذخیره میشود؛ بنابراین برای بازدیدکنندگان بعدی، بدون نیاز به اجرای مجدد PHP یا دیتابیس، فایل آماده در چند میلیثانیه تحویل داده میشود.
انواع کش در اکوسیستم وردپرس
کش در وردپرس به ۴ سطح مختلف تقسیم میشود:
- ۱. کش صفحه (Page Cache): کل خروجی HTML صفحه را ذخیره میکند تا بدون اجرای PHP لود شود. (پایهایترین و مؤثرترین نوع کش).
- ۲. کش اشیاء (Object Cache): نتایج کوئریهای تکراری دیتابیس (مانند گزینهها، اطلاعات کاربر یا دستهها) را در رم نگه میدارد.
- ۳. کش مرورگر (Browser Cache): به مرورگر بازدیدکننده دستور میدهد فایلهای استاتیک (CSS، JS، تصاویر و فونتها) را در سیستم کاربر نگه دارد.
- ۴. کش کد منبع (OPcache): بایتکد کامپایلشده فایلهای PHP را در حافظه رم سرور ذخیره میکند تا در هر درخواست از نو کامپایل نشوند.
چرا سایتهای فروشگاهی (ووکامرس) به Redis نیاز دارند؟
در سایتهای وبلاگی و شرکتی، کش صفحه (Page Cache) به تنهایی ۹۰٪ بار را حذف میکند؛ اما در فروشگاههای اینترنتی، صفحاتی مانند سبد خرید، تسویهحساب و پیشخوان کاربر داینامیک هستند و نباید Page Cache شوند. اینجاست که Redis Object Cache وارد عمل میشود.
ردیس (Redis) یک پایگاه داده درون حافظه (In-Memory Key-Value Store) است که نتایج کوئریهای پیچیده ووکامرس را در کسری از میلیثانیه مستقیماً از حافظه RAM بازمیگرداند و فشار روی MySQL را تا ۸۰ درصد کاهش میدهد.
چالش پاکسازی و تازهسازی کش (Cache Invalidation)
بزرگترین دردسر سیستمهای کش، نمایش محتوای قدیمی به کاربران است. یک افزونه کش استاندارد باید به صورت هوشمند:
- هنگام انتشار پست جدید، صفحه اصلی، دستهبندیها و فیدهای مرتبط را پاک کند.
- هنگام ثبت سفارش یا تغییر موجودی انبار در ووکامرس، فقط صفحات همان محصول را ریست نماید.
- امکان تعریف استثناها (Exclude Rules) برای صفحات حساس مثل لاگین، تسویهحساب و درگاه پرداخت را فراهم کند.
پیکربندیهای پیشنهادی بر اساس نوع وبسرور
- وبسرور LiteSpeed / OpenLiteSpeed: افزونه رسمی
LiteSpeed Cache+ سرویس Redis (سریعترین ترکیب برای هاستهای لایتاسپید). - وبسرور Nginx / Apache: افزونه
WP RocketیاFlyingPress+ افزونهRedis Object Cache.