Black Friday! Отримайте до 9 місяців Хостингу в подарунок!

Детальніше

Обʼєктний кеш для WordPress – коли потрібен та як реалізувати?

post thumbnail

Продуктивність вашого WordPress-сайту можна значно збільшити, використавши об’єктне кешування. Однак не кожен ресурс в такому випадку стане працювати швидше.

В цьому матеріалі постараємось пояснити, що таке об’єктний кеш Redis та коли його варто використовувати. Додатково розповімо, як він працює і надамо докладні інструкції зі встановлення й налаштування цього програмного забезпечення.

Важливо, що все, про що буде йти мова нижче, не стосується послуг shared хостингу. Адже на серверах загального користування не встановлені Redis, Memcached чи інші подібні кешери. Інструкція актуальна для послуг VPS.

Що таке об’єктний кеш Redis?

Якщо вебсайт кешується, це означає, що його елементи, такі як зображення, таблиці стилів та інші завантажуються, а потім зберігаються в так званому кеші.

У такий спосіб запам’ятовується, що було завантажено і створюється його статична версія. Потім ця версія показується набагато швидше при наступному завантаженні сайту. Як результат – сторінка завантажується швидше, використовуючи менше ресурсів сервера.

Коли мова йде про Redis, кешування відбувається на стороні сервера, в його оперативній пам’яті. Використовуючи об’єктний кеш, WordPress зберігає результати запитів до бази даних у памʼяті. Таким способом їх кількість зменшується, як і час відповіді сайту.

Memcached VS Redis: у чому різниця?

Як і Redis, Memcached – це сервіс з відкритим вихідним кодом, який підтримує всі основні мови програмування і дозволяє зберігати інформацію на кшталт «ключ-значення». Використовують Memcached в основному для кешування сесій.

Спробуємо коротко описати сам процес кешування. Запит користувача опиняється в сховищі Memcached, де відбувається пошук готової компіляції. Якщо вона відсутня, то запит передається на сервер, який відправляє результат користувачеві. Тут же він зберігається в оперативній пам’яті за допомогою Memcached.

Коли подібний запит повториться, результат буде передаватись з кешу, що скоротить час відгуку і розвантажить потужності сервера. А отже сайт буде завантажуватись значно швидше.

Redis – СУБД, яка працює за схожим  з Memcached принципом. Це розподілене сховище найкраще підійде сайтам з великою кількістю запитів до баз даних, адже використовує той же метод збереження «ключ-значення».

Однак Redis має ширший функціонал і використовується не лише для кешування. Він також дозволяє завантажувати сайт не по черзі, а у всіх користувачів, завдяки згладжуванню блокування сесій на РНР. Працює як message broker (програма, що допомагає диференціювати повідомлення за групами та одержувачами), для невеликих майданчиків може використовуватись як СУБД, кешує PHP-код тощо.

Коли потрібне об’єктне кешування Redis?

Зазначимо, що якщо у вас статичний сайт, якому потрібно завантажувати таблиці стилів і кілька зображень, то ви не помітите жодної різниці при використанні об’єктного кешування.

Для того, щоб отримувати користь від використання Redis, сайт має бути динамічним і завантажувати безліч інформації з бази даних. Це може бути інформація про користувачів, посилання тощо.

Кожного разу, коли потрібно завантажити подібну інформацію, сайт надсилає запит (або декілька) до бази даних. При використанні об’єктного кешування, ці дані зберігатимуться в кеші та будуть готові до відображення. Таким чином ресурси сервера використовуватимуться значно ефективніше, а сторінка завантажуватиметься швидше. Це особливо важливо, якщо ви хочете масштабувати свій сайт.

Отже, об’єктний кеш стане вам в пригоді:

  • якщо у вас динамічний сайт, на якому багато трафіку, або такий очікується в найближчому майбутньому;
  • якщо ви не можете кешувати вміст сайту за допомогою стандартних плагінів; 
  • якщо потрібно ефективніше використовувати ресурси сервера; 
  • якщо сайт сильно сповільнюється при напливах користувачів або/і через велике навантаження на базу даних.

Чи можна прискорити WordPress завдяки Redis?

Для того, щоб Object Cache прискорив ваш сайт на WordPress, повинні виконуватись певні умови.

  • Не варто використовувати Redis зі стандартними плагінами на кшталт LiteSpeed Cache, WP Fastest Cache чи WP-Rocket. Або слід налаштувати їх так, щоб вони працювали виключно на окремих сторінках.
  • Прискорення не буде, якщо час генерації сторінки більш як 0,5 секунди або збільшений через велику кількість одночасного доступу користувачів.
  • Також Redis навряд допоможе, якщо час на запити до бази даних вищий, ніж швидкість генерації сторінки.

Можна зробити висновок, що Redis допомагає, якщо на вашому сайті одночасно виконується значна кількість паралельних запитів до бази даних. Тоді робота ресурсу буде пришвидшена завдяки об’єктному кешуванню.

Встановлення та налаштування Redis на WordPress

Використання Redis для об’єктного кешування передбачає встановлення та налаштування самого Redis, потім встановлення PHP-розширення і плагіна Redis Object Cache.

Інсталювати Redis рекомендовано на Linux сервері. Якщо ви збираєтесь робити це вручну, то перед початком необхідно виконати ще ряд умов.

  • Кореневий доступ до Linux-сервера.
  • Можливість встановлення Redis через SSH-доступ. Гайд, як отримати доступ по SSH
  • Встановлений WordPress.
  • PHP версія 7.0 або вище.
  • Встановлені Wget і Sudo на сервері.
  • На сервері встановлений текстовий редактор, наприклад, Nano.
  • Phpize встановлюється для підготовки розширення PHP до компіляції.

Також рекомендуємо створити резервну копію сайту на випадок, якщо щось піде не так і доведеться його відновлювати. Додатково можете протестувати Redis перед тим як розгортати його на робочому сервері.

Встановлення Redis для об’єктного кешування

Ви можете скористатись менеджером пакетів вашого дистрибутива, як-от yum або apt. Але пам’ятайте, що вони не завжди будуть оновлені до останньої версії. Тому пропонуємо використовувати саме wget.

Щоб встановити останню версію, в командному рядку введіть:

wget http://download.redis.io/redis-stable.tar.gz

Після цього введіть:

tar xvzf redis-stable.tar.gz

Потім:

cd redis-stable

І нарешті:

make

Налаштування

Коли Redis встановлено, необхідні додаткові налаштування, щоб використовувати його для об’єктного кешування:

Щоб отримати доступ до файлу конфігурації, введіть в рядок:

sudo nano /etc/redis/redis.conf

Зверніть увагу, що команда «nano» потрібна, щоб отримати доступ до файлу за допомогою редактору Nano. Якщо ви використовуєте інший редактор, то замініть команду на відповідну.

Далі вам потрібно знайти, де написано:

#maxmemory

Потім замініть його цим:

maxmemory 128mb
maxmemory-policy allkeys-lfu

Замість 128 МВ можете підібрати числа відповідно до ваших потреб. Перш за все враховуйте кількість фізичної оперативної пам’яті на сервері, а потім ваш трафік. Наприклад, багатьом може бути достатньо і 50 МВ. Але якщо у вас сайт з великою кількістю користувачів, то 128 МВ або 256 МВ підходять краще, якщо це дозволяє оперативна пам’ять сервера.

Редагування файлу wp-config.php

Після виконання попередніх дій Redis налаштовано на доступ до будь-яких збережених даних для всіх програм на сервері. Оскільки це вважається загрозою безпеці, важливо відредагувати основний файл WordPress wp-config.php.

Відкрийте файл wp-config.php і над рядком «happy blogging» введіть:

define( 'WP_CACHE_KEY_SALT', 'example.com:' );

Не забудьте замінити «example.com» на домен вашого сайту. Переконайтесь, що ключ унікальний. Його можна згенерувати за допомогою безплатних сервісів Random Key Gen або KeyGen.io. Бережіть цей ключ так само як і свої паролі.

Встановлення розширення PHP

Важливо дозволити WordPress зв’язуватися зі сховищем ключів Redis. Це дозволить увімкнути об’єктний кеш. Для цього необхідно встановити розширення PHP, наприклад, PHP Redis.

Повертаємось до командного рядка, в якому вводимо:

wget https://github.com/nicolasff/phpredis/archive/master.zip

Наступною має бути команда:

unzip master.zip

Потім:

cd phpredis-master

На даному етапі ви завантажили та розпакували вихідний код. Щоб його встановити, введіть:

phpize

Далі:

./configure

Після цього:

make

І нарешті:

sudo make install

Тепер PHP Redis встановлено, і вам потрібно створити новий файл INI. Це можна зробити за допомогою такої команди:

sudo echo "extension=redis.so" > /etc/php/7.x/apache2/conf.d/redis.ini

Обов’язково замініть «х» на число, яке відображатиме вашу версію PHP 7. Також майте на увазі: якщо ви не використовуєте Apache, то шлях до файлу має відображати файлову ієрархію на вашому сервері.

Перезапуск Redis і PHP

Важливо перезапустити Redis і PHP, щоб усі зміни почали діяти.

Для перезапуску Redis введіть команду:

sudo service redis-server restart

А щоб перезапустити PHP введіть такий рядок:

apache2ctl restart

Знову нагадуємо, що тим, хто не використовує Apache, потрібно виконати свою команду перезапуску.

Переконайтесь, що Redis працює, ввівши команду:

redis-cli ping

Якщо побачите відповідь «PONG», то це означає, що Redis налаштовано і він працює.

Далі можете встановити та активувати плагін Redis Object Caching через адмін-панель WordPress.

Об'єктний кеш | Блог HostPro

Після встановлення увімкніть об’єктний кеш в налаштування («Enable Object Cache»).

Об'єктний кеш | Блог HostPro

Щойно ви ввімкнете обʼєктне кешування, статус зміниться на «Connected».

Об'єктний кеш | Блог HostPro

Тут ви можете побачити кнопку очищення саме обʼєктного кешу «Flush Cache», нею можна скористатися, якщо серверні операції виконуються некоректно.

Альтернатива Redis Object Cache – плагін Object Cache Pro

Оскільки Redis зараз викуповують Red Hat і планують робити плагін платним, поговоримо ще про альтернативний варіант для об’єктного кешування – плагін Object Cache Pro. Він оптимізований для JetPack, WooCommerce та Yoast SEO. Тому використання цього плагіну чудово підійде для бізнесу.

Перед встановленням Object Cache Pro рекомендують налаштувати ліцензійний ключ. Це допоможе уникнути збоїв в процесі інсталяції. Найпростіший спосіб це зробити – відредагувати файл wp-config.php. Зробити це можна через вашу панель керування cPanel ⇨ «Файли» ⇨ «Диспетчер файлів» ⇨ «public_html» ⇨ «config.php».

Об'єктний кеш | Блог HostPro

Об'єктний кеш | Блог HostPro

Відкрийте файл wp-config.php в файловому менеджері. Під рядком з написом «Add any custom values between this line and the “stop editing” line» додайте нижче наведений код. Не забудьте ввести свій ліцензійний ключ замість «your-license-token».

define('WP_REDIS_CONFIG', [
'token' => '<your-license-token>',
'host' => '127.0.0.1',
'port' => 6379,
'database' => 0, // change for each site
'maxttl' => 86400,
'timeout' => 1.0,
'read_timeout' => 1.0,
// 'prefetch' => true,
// 'split_alloptions' => true,
'debug' => false,
]);
define('WP_REDIS_DISABLED', false);

Після додавання файлу ви можете переглянути список налаштувань і змінити потрібні вам параметри. Якщо все гаразд, збережіть і закрийте файл.

Встановлення Object Cache Pro на WordPress

Після налаштування параметрів можете встановлювати плагін, завантаживши zip-файл. Перейдіть на адмінпанель WordPress і відкрийте вкладку плагінів. Натисніть «Add Plugins» і оберіть «Upload Plugin». Потім знайдіть zip-файл і встановіть його.

Об'єктний кеш | Блог HostPro

Після встановлення натисніть «Activate Plugin», щоб увімкнути його.

Об'єктний кеш | Блог HostPro

Перейдіть до меню плагінів і натисніть «View Details» поруч з Object Cache Pro. Після цього з’явиться вікно з інформацією про сам плагін. Переконайтесь, що у вас встановлена остання версія. Про це можна дізнатись внизу праворуч. Якщо ні – оновіть плагін та за потреби увімкніть автоматичні оновлення.

Об'єктний кеш | Блог HostPro

Після встановлення плагіна можете відкрити його налаштування, щоб переконатись, що все працює. На інформаційній панелі ви повинні бачити «Status: Connected».

Об'єктний кеш | Блог HostPro

На завершення

Об’єктне кешування – це дієвий спосіб, який допоможе прискорити ваш сайт на WordPress завдяки зменшенню кількості запитів до бази даних і як наслідок ефективнішого використання ресурсів сервера.

Водночас об’єктне кешування не варто використовувати тим, у кого статичний сайт з невеликою кількістю запитів. В такому випадку встановлення Redis не покаже ніяких результатів. Альтернативою використання Redis може стати Object Cache Pro. Це чудовий варіант для бізнесу і не тільки.

Telegram Hostpro

Наш телеграм

з важливими анонсами, розіграшами й мемами

Приєднатися

Можливо, вас зацікавить

Як вибрати сервер для бухгалтерського обліку?
Як вибрати сервер для бухгалтерського обліку?

Будь-яке підприємство, що збирається масштабуватись, рано чи пізно прийде до автоматизації бізнес-процесів. Ключову роль...

Топ порад для прискорення та оптимізації роботи VPS
Топ порад для прискорення та оптимізації роботи VPS

Порівняно з віртуальним хостингом VPS надає більшу незалежність та контроль над ресурсами сервера. Однак...

Що таке снапшоти, що таке бекапи, і чим вони відрізняються?
Що таке снапшоти, що таке бекапи, і чим вони відрізняються?

Одна DDoS-атака чи невдале оновлення WordPress може покласти ваш сайт на лопатки. Тож, щоб...