SHET27

کش Redis در وردپرس چیست و چطور فعالش کنیم؟

کش Redis در وردپرس چیست و چطور فعالش کنیم؟

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

کش شیء یا Object Cache نتیجه این درخواست‌های تکراری رو موقت نگه می‌داره تا وردپرس مجبور نباشه هر بار سراغ دیتابیس بره. یکی از ابزارهای شناخته‌شده برای این کار Redis هست؛ یک سیستم ذخیره‌سازی داده در حافظه رم که اسمش از عبارت «REmote DIctionary Server» گرفته شده. این فناوری در سرویس‌هایی مثل گیت‌هاب، پینترست و اینستاگرام هم استفاده می‌شه.

توی این راهنما می‌بینید کش Redis در وردپرس چیست، چه فرقی با Memcached داره و چطور باید اون رو روی سرور و وردپرس راه‌اندازی کنید. مراحل فنی رو هم ساده و قدم‌به‌قدم جلو می‌بریم تا بدون آشنایی قبلی با Redis، مسیر کلی کار براتون روشن باشه.

کش (Cache) چیست و چرا به آن نیاز داریم؟

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

نحوه کارکرد کش
نحوه کارکرد کش

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

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

تفاوت مدل‌های مختلف کش به این برمی‌گرده که چه چیزی رو نگه می‌دارن و اطلاعات رو کجا ذخیره می‌کنن:

  • Page Cache (کش صفحه): خروجی نهایی صفحه یا همون HTML رو ذخیره می‌کنه و بیشتر برای بازدیدکننده‌هایی کاربرد داره که وارد حساب کاربری‌شون نشدن.
  • Object Cache (کش شیء): نتیجه کوئری‌های دیتابیس رو نگه می‌داره. این نوع کش برای کاربران واردشده، سبد خرید ووکامرس و بخش مدیریت اهمیت بیشتری داره .

کش شیء (Object Cache) دقیقاً چیست؟

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

برای نصب Redis معمولاً باید به تنظیمات سرور دسترسی داشته باشید؛ مثلاً از سرور مجازی یا سرور اختصاصی استفاده کنید. روی هاست اشتراکی عادی نمی‌تونید خودتون سرویس رو نصب کنید، مگر اینکه شرکت هاستینگ Redis رو از قبل راه‌اندازی کرده باشه .

کی و چه زمانی باید از Object Cache استفاده کنیم؟

همه سایت‌ها به Object Cache نیاز ندارن. اگه یک وبلاگ ساده و کم‌بازدید دارید و کاربران فقط نوشته‌ها رو می‌خونن، معمولاً Page Cache نیازتون رو برطرف می‌کنه.

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

اگه سایتتون یکی از ویژگی‌های زیر رو داره، Object Cache می‌تونه براتون کاربردی باشه :

  • فروشگاه اینترنتی ووکامرسی که اطلاعاتی مثل سبد خرید کاربران رو در دیتابیس نگه می‌داره.
  • سایت عضویتی یا اشتراکی که کاربران واردشده زیادی داره.
  • سایت انجمن، وب‌لاگ یا پرسش و پاسخ.
  • شبکه وردپرس چندسایته یا Multisite با تعداد زیادی زیرسایت.

Memcached یا Redis؟ کدام یک بهتر است؟

MEMCACHED یا REDIS
MEMCACHED یا REDIS

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

ویژگیRedisMemcached
ماندگاری اطلاعاتداره و می‌تونه اطلاعات رو روی دیسک ذخیره کنه تا با راه‌اندازی دوباره سرور از بین نرن.نداره و با راه‌اندازی دوباره سرور، کل کش خالی می‌شه.
ساختار دادهپیشرفته؛ مثل رشته، هش، لیست، ست و مجموعهساده؛ فقط کلید-مقدار یا Key-Value
اکوسیستم وردپرسبسیار محبوب و دارای افزونه‌های قدرتمند و به‌روزنسبتاً محبوب و کمتر استفاده می‌شه
کاراییبسیار بالا و تک‌رشته‌ایبسیار بالا و چندرشته‌ای برای عملیات ساده

هر دو ابزار سریع و کاربردی هستن، ولی Redis به‌خاطر پشتیبانی بهتر افزونه‌های وردپرس، امکان ماندگارکردن داده و ساختارهای داده پیشرفته، معمولاً انتخاب مناسب‌تری برای وردپرسه .

چگونه Redis Cache را روی سرور نصب کنیم؟ (راهنمای لینوکس CentOS)

این بخش برای مدیران سروره. اگه از هاست اشتراکی استفاده می‌کنید، از پشتیبانی هاست بخواید Redis رو براتون فعال کنه. راه دیگه استفاده از هاست مدیریت‌شده‌ای مثل Cloudways یا Kinsta هست که این گزینه رو در داشبوردش ارائه می‌ده .

مراحل زیر نصب Redis روی لینوکس CentOS از طریق ترمینال و با دسترسی روت رو نشون می‌دن:

مرحله 1: نصب Redis
این دستورها رو به‌ترتیب وارد کنید:

bash

# نصب مخزن EPEL (برای دسترسی به بسته‌های اضافی)
yum install epel-release

# نصب سرویس Redis
yum install redis

مرحله 2: راه‌اندازی و فعال‌کردن سرویس

bash

# اجرای سرویس Redis
systemctl start redis

# فعال‌سازی سرویس Redis برای روشن شدن خودکار هنگام ریبوت سرور
systemctl enable redis

مرحله 3: آزمایش نصب
برای بررسی اتصال، این دستور رو وارد کنید:

bash

redis-cli ping

اگه عبارت PONG رو در خروجی دیدید، سرویس Redis با موفقیت نصب شده و در حال اجراست.

مرحله 4: نصب افزونه موردنیاز PHP
حالا PHP باید بتونه با Redis ارتباط برقرار کنه. برای این کار به phpredis نیاز دارید. دستور دقیق نصب ممکنه با توجه به نسخه PHP سرورتون فرق داشته باشه.

bash

yum install php-pecl-redis

بعد از نصب، سرویس وب‌سرور آپاچی یا Nginx و همین‌طور PHP-FPM رو دوباره راه‌اندازی کنید.

نصب و راه‌اندازی Redis Cache در وردپرس (تنظیمات نهایی)

وقتی تنظیمات سرور آماده شد، باید وردپرس رو به Redis وصل کنید.

قدم 1: نصب افزونه

در پیشخوان وردپرس به «افزونه‌ها > افزودن» برید و Redis Object Cache رو جست‌وجو کنید. این افزونه که Till Krüss اون رو توسعه داده، وردپرس رو به Redis متصل می‌کنه.

افزونه Redis برای وردپرس
افزونه Redis برای وردپرس

قدم 2: فعال‌کردن کش

بعد از نصب و فعال‌کردن افزونه، به مسیر تنظیمات > Redis برید. اگه تنظیمات سرور درست باشه، پیامی مثل “Connected” یا “Accessible” می‌بینید.

روی دکمه Enable Object Cache کلیک کنید. افزونه فایل object-cache.php رو در پوشه wp-content قرار می‌ده و کش Redis رو برای سایتتون فعال می‌کنه .

قدم 3: تنظیمات پیشرفته (اختیاری)

اگه لازم باشه شماره دیتابیس، آدرس میزبان یا رمز Redis رو تغییر بدید، می‌تونید ثابت‌های زیر رو در فایل wp-config.php قرار بدید :

php

// تعیین هاست Redis (معمولا localhost)
define('WP_REDIS_HOST', '127.0.0.1');

// تعیین پورت (پیش فرض 6379)
define('WP_REDIS_PORT', 6379);

// تعیین دیتابیس (برای جلوگیری از تداخل با سایر سایت‌ها)
define('WP_REDIS_DATABASE', 0);

// اگر پسورد دارید
define('WP_REDIS_PASSWORD', 'yourpassword');

جمع‌بندی

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

اگه سرور مجازی یا VPS دارید، می‌تونید Redis رو با کمک مدیر سرور راه‌اندازی و آزمایش کنید. اگه از هاست اشتراکی استفاده می‌کنید، پیش از خرید یا تمدید سرویس از شرکت هاستینگ بپرسید که Redis رو ارائه می‌ده یا نه . اگه در هرکدوم از مراحل سؤالی دارید، اون رو در بخش نظرات با ما در میون بذارید.

لینک: https://mihanwp.com/redis/

نظر شما در این مورد چیه؟

  1. U341840۱۷ فروردین ۱۴۰۳

    ایا استفاده این افزونه کنار راکت ممکن است و مشکلی ایجاد نمیکند/؟؟؟؟؟؟؟؟؟؟؟؟

  2. U341840۱۷ فروردین ۱۴۰۳

    ایا استفاده این افزونه کنار راکت ممکن است و مشکلی ایجاد نمیکند/؟

  3. U338391۱۹ بهمن ۱۴۰۲

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

  4. U329067۱۰ شهریور ۱۴۰۲

    گزینه enable پیش فرض خاموشه با اینکه هاستم redis support هست

    • رضا راد۱۱ شهریور ۱۴۰۲

      باید فعالش کنید اگر هاستتون ساپورت کنه باید بشه روشنش کرد.

  5. U317638۱ اردیبهشت ۱۴۰۲

    سلام من وبسروم apache هست
    کنترل پنل هم دایرکت ادمین هست
    کجا باید از دستورات را وارد کنم

    • رضا راد۶ اردیبهشت ۱۴۰۲

      توی کامند لاین سرور

  6. U42273۲۷ مهر ۱۴۰۰

    سلام
    سرور فعال کرد
    سرور litespeed و دسترسی به افزونه ردیس رو ندارم
    پس رفتم و از داخل litespeed گزینه ردیس رو فعال و تیک ردیس رو هم زدن
    سرعت سایت افتضاح شد
    هم redis فعال ه وهم memchash

  7. U38798۱۷ تیر ۱۴۰۰

    من redis رو که فعال می‌کنم not connected میده!

  8. U9779۲۵ خرداد ۱۳۹۹

    سلام
    شما از چه سیستم کشی استفاده میکنید؟
    سرعت سایت شما مربوط به بهینه بودن کش است؟ یا کدنویسی بهیه قالبتون؟

    • تیم پشتیبانیتیم پشتیبانی۲۵ خرداد ۱۳۹۹

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

پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
تیم میهن وردپرس
پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
تیم میهن وردپرسآنلاین و پاسخگوی شما هستیم.آنلاین

در حال بارگذاری...

هر سوالی دارید بپرسید.پاسخگوی شما هستیم.