اگر هنگام بررسی سرعت یک سایت وردپرسی با عباراتی مانند Object Cache، Persistent Object Cache، Redis یا Memcached مواجه شدهاید، احتمالاً این سؤال برایتان پیش آمده که Memcached دقیقاً چیست و آیا فعال کردن آن میتواند سرعت وردپرس را افزایش دهد؟
Memcached یک سیستم کش مبتنی بر حافظه است که برای نگهداری موقت دادههایی استفاده میشود که تولید یا دریافت مجدد آنها هزینه بیشتری دارد. به جای اینکه برنامه در هر درخواست دوباره برای دریافت یک داده به منبع اصلی، مانند دیتابیس، مراجعه کند، میتواند نتیجه را در حافظه ذخیره کرده و در درخواستهای بعدی سریعتر آن را دریافت کند.
در وردپرس، Memcached معمولاً به عنوان یک Persistent Object Cache مورد استفاده قرار میگیرد. Object Cache میتواند نتایج برخی عملیات و دادههای موردنیاز وردپرس را در حافظه نگه دارد تا تعداد مراجعههای غیرضروری به دیتابیس کاهش پیدا کند. مستندات رسمی وردپرس نیز Memcached را یکی از فناوریهای مورد استفاده برای Object Caching معرفی میکند.
به زبان ساده، اگر دیتابیس را مانند انبار یک فروشگاه در نظر بگیریم، Memcached شبیه یک قفسه کوچک و سریع در کنار صندوق است؛ کالاهایی که مرتب موردنیاز هستند، در این قفسه قرار میگیرند تا فروشنده مجبور نباشد برای هر مشتری دوباره به انبار مراجعه کند.
Memcached در وردپرس چه کاری انجام میدهد؟
وردپرس برای اجرای صفحات مختلف به اطلاعات زیادی از دیتابیس نیاز دارد. بعضی از این اطلاعات ممکن است بارها و بارها مورد استفاده قرار بگیرند.
Object Cache با ذخیره موقت این دادهها در حافظه، تعداد مراجعههای موردنیاز به دیتابیس را کاهش میدهد. وردپرس به صورت داخلی کلاس WP_Object_Cache را برای مدیریت Object Cache دارد، اما کش داخلی پیشفرض آن Persistent نیست؛ یعنی بدون یک سیستم کش پایدار، دادههای آن با پایان درخواست از بین میروند.
وقتی یک سرویس مانند Memcached به شکل صحیح به وردپرس متصل شود، دادههای Object Cache میتوانند بین درخواستهای مختلف باقی بمانند.
در نتیجه، در سایتهایی که تعداد درخواستها، کوئریهای دیتابیس یا پردازشهای تکراری زیاد است، Persistent Object Cache میتواند فشار روی دیتابیس را کاهش دهد و زمان پاسخ سرور را بهتر کند. وردپرس نیز استفاده از Persistent Object Cache را یکی از روشهای بهبود عملکرد سایت معرفی کرده است.

تفاوت Memcached با Page Cache چیست؟
یکی از مهمترین نکاتی که قبل از فعال سازی Memcached وردپرس باید بدانید، تفاوت Object Cache و Page Cache است.
Page Cache معمولاً یک نسخه آماده از صفحه را ذخیره میکند تا در درخواست بعدی، سرور بتواند همان خروجی را سریعتر ارائه دهد. افزونههایی مانند سیستمهای کش صفحه میتوانند از این روش استفاده کنند.
اما Object Cache بیشتر روی دادهها و اشیای مورد استفاده برنامه تمرکز دارد؛ برای مثال نتایج برخی کوئریها یا دادههایی که وردپرس و افزونهها به آنها نیاز دارند.
بنابراین:
Memcached جایگزین Page Cache نیست؛ Memcached معمولاً به عنوان یک لایه Object Cache استفاده میشود.
مستندات وردپرس نیز Page Cache و Object Cache را دو لایه متفاوت معرفی میکند. advanced-cache.php معمولاً در ارتباط با Page Cache است، در حالی که object-cache.php برای Object Cache استفاده میشود.
آیا Memcached باعث افزایش سرعت وردپرس میشود؟
در بسیاری از سایتها، فعال کردن Persistent Object Cache میتواند به کاهش رفتوبرگشتهای غیرضروری به دیتابیس و بهبود زمان پاسخ سرور کمک کند؛ اما نباید تصور کرد که نصب Memcached به تنهایی هر سایت وردپرسی را به شکل چشمگیری سریع میکند.
نتیجه به عواملی مانند تعداد درخواستها، نوع سایت، کیفیت دیتابیس، افزونهها، حجم دادهها، منابع سرور و نحوه استفاده سایت از Object Cache بستگی دارد.
برای مثال، فرض کنید یک فروشگاه مواد غذایی آنلاین تعداد زیادی محصول و اطلاعات موجودی دارد. اگر بخشهایی از این اطلاعات مرتباً از دیتابیس خوانده شوند، نگهداری برخی دادههای قابل کش در حافظه میتواند تعداد مراجعههای تکراری به دیتابیس را کاهش دهد.
اما اگر مشکل اصلی سایت، تصاویر بسیار حجیم، کدهای سنگین، هاست ضعیف یا یک افزونه ناکارآمد باشد، Memcached لزوماً مشکل اصلی را حل نمیکند.
برای فعال سازی Memcached وردپرس چه چیزهایی لازم است؟
فعال کردن Memcached فقط با نصب یک افزونه وردپرس انجام نمیشود. برای استفاده صحیح از آن، باید زیرساخت سرور نیز آماده باشد.
به طور معمول این اجزا موردنیاز هستند:
- سرویس Memcached روی سرور
- افزونه یا Extension مناسب PHP برای ارتباط با Memcached
- یک افزونه یا Drop-in وردپرس برای اتصال Object Cache به Memcached
مستندات رسمی وردپرس نیز اشاره میکند که برای استفاده از Memcached به عنوان Persistent Object Cache، وجود سرور Memcached و Extension مناسب PHP ضروری است.
به همین دلیل، اگر فقط یک افزونه کش نصب کنید ولی سرویس Memcached روی سرور وجود نداشته باشد، نمیتوان گفت Memcached واقعاً در حال استفاده است.
چگونه بفهمیم هاست Memcached دارد؟
قبل از نصب هر افزونهای، بهتر است ابتدا از شرکت هاستینگ بپرسید:
آیا سرویس Memcached روی سرور فعال است و Extension مربوط به PHP نیز در دسترس است؟
همچنین میتوانید از بخش سلامت سایت وردپرس وضعیت Persistent Object Cache را بررسی کنید.
وردپرس در Site Health تستی برای بررسی استفاده از Persistent Object Cache دارد و در شرایطی که استفاده از آن را مناسب تشخیص دهد، پیشنهاد فعالسازی آن را نمایش میدهد.
مسیر بررسی:
پیشخوان وردپرس ← ابزارها ← سلامت سایت
در نسخههای فارسی ممکن است نام برخی گزینهها با توجه به ترجمه متفاوت باشد.
اگر هاستینگ امکان Memcached را ارائه نمیدهد، نصب افزونه به تنهایی نمیتواند یک سرور Memcached واقعی برای سایت ایجاد کند.
آموزش فعال سازی Memcached وردپرس
روش دقیق فعال سازی بسته به شرکت هاستینگ، کنترلپنل و نوع سرور متفاوت است، اما روند کلی معمولاً به این شکل است.
مرحله اول: بررسی و فعال بودن Memcached روی سرور
ابتدا باید سرویس Memcached روی سرور نصب و فعال باشد.
در سرورهای مدیریتشده، ممکن است این کار توسط شرکت هاستینگ انجام شود. در سرورهای VPS یا اختصاصی، مدیر سرور باید سرویس را نصب و تنظیم کند.
نکته مهم این است که Memcached یک سرویس سمت سرور است، نه صرفاً یک افزونه وردپرس.
مرحله دوم: بررسی PHP Extension
پس از فعال بودن سرویس، باید Extension موردنیاز PHP نیز نصب و فعال باشد.
نام Extension بسته به محیط PHP و روش اتصال ممکن است متفاوت باشد و بهتر است تنظیم دقیق آن بر اساس نسخه PHP و سیستمعامل سرور انجام شود.
اگر Extension موردنیاز فعال نباشد، افزونه وردپرس نمیتواند ارتباط صحیحی با سرویس Memcached برقرار کند.
مرحله سوم: نصب افزونه Object Cache وردپرس
حالا باید یک راهکار مناسب برای اتصال WordPress Object Cache به Memcached نصب شود.
وردپرس برای Persistent Object Cache از فایلی به نام:
wp-content/object-cache.php
به عنوان Drop-in استفاده میکند. اگر این فایل به شکل صحیح نصب شده باشد، وردپرس میتواند Object Cache خارجی را از طریق آن بارگذاری کند.
نکته مهم اینجاست که وجود فایل object-cache.php به تنهایی کافی نیست؛ این فایل باید متعلق به یک راهکار سازگار و به درستی به سرویس Memcached متصل شده باشد.
آیا با اضافه کردن WP_CACHE، Memcached فعال میشود؟
خیر؛ این یکی از اشتباهات رایج است.
ممکن است در بعضی آموزشهای قدیمی با کدی مانند زیر مواجه شوید:
define( 'WP_CACHE', true );
اما این کد به تنهایی Memcached را فعال نمیکند.
مستندات رسمی وردپرس صراحتاً توضیح میدهد که WP_CACHE به خودی خود Redis یا Memcached را فعال نمیکند و برای استفاده از Persistent Object Cache باید راهکار مناسب آن نیز نصب و پیکربندی شود.
همچنین WP_CACHE بیشتر با سیستمهای Page Cache و advanced-cache.php ارتباط دارد و نباید آن را با Persistent Object Cache یکی دانست.
چگونه بفهمیم Memcached واقعاً در وردپرس فعال شده است؟
بعد از نصب و پیکربندی، فقط به نصب موفق افزونه اکتفا نکنید.
یکی از سادهترین روشها بررسی بخش سلامت سایت وردپرس است. همچنین میتوان وضعیت Object Cache را از طریق ابزارهای مدیریتی و افزونههای تشخیصی بررسی کرد.
در صورت دسترسی به WP-CLI نیز امکان مدیریت Object Cache وجود دارد. برای مثال:
wp cache flush
این دستور Object Cache را پاک میکند؛ البته در سایتهای چندسایتهای که Persistent Object Cache دارند، پاک کردن کش میتواند روی تمام سایتها اثر بگذارد و باید با احتیاط انجام شود.
برای بررسی فنیتر نیز ابزارهایی مانند Query Monitor میتوانند در تحلیل رفتار کوئریها و کش به مدیر سایت کمک کنند. وردپرس نیز Query Monitor و Debug Bar را به عنوان ابزارهایی برای تحلیل Object Cache معرفی کرده است.
Memcached بهتر است یا Redis؟
در پروژههای وردپرسی معمولاً نام Redis و Memcached را در کنار یکدیگر میبینید. هر دو میتوانند به عنوان backend برای Object Cache استفاده شوند، اما انتخاب بین آنها باید با توجه به زیرساخت سرور، سازگاری افزونهها و نیاز پروژه انجام شود.
خود مستندات وردپرس نیز Redis و Memcached را در میان راهکارهای Persistent Object Cache قرار میدهد و تأکید میکند که فناوری مورد استفاده باید بر اساس نیاز برنامه انتخاب شود.
بنابراین نمیتوان صرفاً با گفتن اینکه «Redis همیشه بهتر است» یا «Memcached همیشه سریعتر است» برای همه سایتها تصمیم گرفت.
اگر شرکت هاستینگ شما فقط Memcached را ارائه میکند و سایت با آن سازگاری خوبی دارد، استفاده از آن میتواند کاملاً منطقی باشد. اگر سرور و زیرساخت شما برای Redis طراحی شده است، Redis نیز میتواند گزینه مناسبی باشد.
آیا Memcached با افزونههای کش وردپرس تداخل دارد؟
لزوماً خیر، اما باید نقش هر لایه کش را بدانید.
برای مثال ممکن است یک سایت همزمان از:
Page Cache
+
Object Cache
+
Browser Cache
+
OPcache
استفاده کند.
این لایهها وظایف یکسانی ندارند. WordPress نیز Page Cache، Object Cache، OPcache و Browser Cache را به عنوان لایههای متفاوت کش معرفی میکند.
مشکل زمانی ایجاد میشود که چند سیستم مختلف بدون تنظیم صحیح روی یکدیگر قرار بگیرند یا افزونههای مختلف بخواهند مدیریت کش را به شکل متناقض انجام دهند.
به همین دلیل بعد از فعالسازی Memcached، بهتر است لاگها، سلامت سایت و عملکرد بخشهای مهم سایت بررسی شوند.
آیا فعال کردن Memcached برای همه سایتهای وردپرسی ضروری است؟
خیر.
Memcached یک ابزار بهینهسازی است، نه یک الزام برای اجرای وردپرس.
اگر یک سایت کوچک با ترافیک محدود، دیتابیس سبک و صفحات نسبتاً ساده دارید، ممکن است تأثیر آن محدود باشد. در مقابل، سایتهایی که دیتابیس سنگینتر، درخواستهای زیاد، کاربران همزمان بیشتر یا پردازشهای تکراری دارند، ممکن است از Persistent Object Cache بیشتر بهره ببرند.
وردپرس نیز استفاده از Persistent Object Cache را به عنوان راهکاری برای کاهش رفتوبرگشت به دیتابیس و بهبود عملکرد سرور مطرح میکند، اما مناسب بودن آن باید با شرایط واقعی سایت بررسی شود.
اگر Memcached را خاموش کنیم چه اتفاقی میافتد؟
کش قرار نیست جایگزین دیتابیس یا اطلاعات اصلی سایت باشد.
Object Cache دادههایی را نگه میدارد که امکان تولید یا دریافت مجدد آنها وجود دارد. بنابراین اگر کش پاک شود، وردپرس باید دادههای موردنیاز را دوباره تولید یا از منبع اصلی دریافت کند.
در نتیجه، پاک شدن Memcached نباید به معنی حذف اطلاعات اصلی سایت باشد؛ بیشتر مسئله این است که پس از پاک شدن کش، مدتی زمان لازم است تا دادههای موردنیاز دوباره در کش قرار بگیرند.
وردپرس نیز Object Cache را به عنوان محلی برای نگهداری دادههای قابل بازتولید معرفی میکند، نه جایگزینی برای دیتابیس اصلی.
چند اشتباه رایج در استفاده از Memcached
نصب افزونه بدون وجود سرویس Memcached
این یکی از رایجترین اشتباهات است. افزونه وردپرس نمیتواند بدون زیرساخت لازم، یک سرویس Memcached واقعی روی سرور ایجاد کند.
تصور اینکه WP_CACHE همان Memcached است
WP_CACHE و Persistent Object Cache دو مفهوم متفاوت هستند و فعال کردن WP_CACHE به تنهایی Memcached را فعال نمیکند.
پاک کردن مداوم کش
پاک کردن مداوم Object Cache میتواند باعث شود دادههای کششده دائماً دوباره تولید شوند و بخشی از مزیت کش از بین برود.
فعال کردن چند راهکار بدون بررسی سازگاری
اگر چند افزونه یا سیستم مختلف بخواهند Object Cache را مدیریت کنند، ابتدا باید مشخص شود کدام سیستم مسئولیت اصلی را بر عهده دارد.
انتظار افزایش سرعت همه بخشهای سایت
Memcached عمدتاً روی Object Cache اثر میگذارد. اگر مشکل سایت از تصاویر سنگین، کدهای JavaScript، منابع سرور، افزونه نامناسب یا تنظیمات وبسرور باشد، فعال کردن Memcached به تنهایی مشکل را برطرف نمیکند.
آیا Memcached روی سئو تأثیر دارد؟
Memcached یک عامل مستقیم رتبهبندی در گوگل نیست. کاربرد اصلی آن بهبود عملکرد سمت سرور و کاهش هزینه برخی عملیات تکراری است.
اگر استفاده صحیح از Object Cache باعث شود سرور سریعتر پاسخ دهد یا در زمان ترافیک بالا فشار کمتری روی دیتابیس وارد شود، میتواند بخشی از بهینهسازی عملکرد سایت باشد. اما نباید این موضوع را به شکل «فعال کردن Memcached باعث افزایش رتبه گوگل میشود» بیان کرد.
بهتر است Memcached را بخشی از بهینهسازی فنی عملکرد وردپرس بدانیم، نه یک تکنیک مستقیم سئو.
چکلیست فعال سازی Memcached در وردپرس
قبل از اینکه فعالسازی را تمامشده بدانید، این موارد را بررسی کنید:
- سرویس Memcached روی سرور فعال است.
- Extension موردنیاز PHP نصب و فعال است.
- راهکار Object Cache سازگار با Memcached نصب شده است.
- فایل
object-cache.phpبه شکل صحیح ایجاد شده است. - وردپرس اتصال Persistent Object Cache را تشخیص میدهد.
- در Site Health وضعیت کش بررسی شده است.
- بعد از فعالسازی، عملکرد سایت و خطاهای PHP بررسی شدهاند.
- Page Cache و Object Cache با یکدیگر اشتباه گرفته نشدهاند.
جمعبندی
Memcached چیست؟ Memcached یک سیستم کش مبتنی بر حافظه است که میتواند دادههای قابل بازتولید را برای دسترسی سریعتر نگهداری کند. در وردپرس، یکی از کاربردهای مهم آن فراهم کردن یک Persistent Object Cache است تا بخشی از دادههای موردنیاز سایت بین درخواستهای مختلف در حافظه باقی بمانند.
برای فعال سازی Memcached وردپرس نیز تنها نصب یک افزونه کافی نیست؛ سرویس Memcached، Extension مناسب PHP و یک راهکار Object Cache سازگار باید در کنار یکدیگر به شکل صحیح تنظیم شوند. وردپرس نیز برای Persistent Object Cache از Drop-in مربوط به object-cache.php استفاده میکند.
اگر سایت شما با مشکل کندی مواجه است، بهتر است قبل از فعال کردن Memcached، علت اصلی کندی را مشخص کنید. در بعضی سایتها مشکل از دیتابیس و کوئریهای زیاد است و Object Cache میتواند کمککننده باشد؛ در سایت دیگر ممکن است مشکل اصلی از تصاویر، افزونهها، PHP، وبسرور یا منابع محدود هاست باشد.
بنابراین Memcached را نه به عنوان یک راهحل جادویی، بلکه به عنوان یکی از لایههای بهینهسازی عملکرد وردپرس در نظر بگیرید.
مجموعه دیجیتال مارکتینگ پرشیا وب