Новости

Основи кешування в WordPress

  1. Що таке кеш?
  2. Кешування в WordPress
  3. Кешування сторінок в WordPress
  4. Плагін WP Super Cache
  5. Плагін W3 Total Cache
  6. плагін Batcache
  7. Кешування об'єктів в WordPress
  8. Постійне кешування об'єктів
  9. Транзитне кешування в WordPress
  10. Кешування об'єктів або транзитне кешування?
  11. висновок

Кешування даних в WordPress дозволяє прискорити роботу вашого сайту і істотно знизити навантаження на ваш сервер. В ядрі існує три основних види кешування - кешування сторінок, кешування об'єктів і транзитне кешування. У цій статті ми коротко розповімо про всіх трьох видах, а так само розглянемо деякі популярні плагіни для кешування в WordPress.

Що таке кеш?

Кеш - це проміжний буфер, який дозволяє зберігати найбільш часто використовувані дані в пам'яті або на жорсткому диску, що дозволяє істотно прискорити процес їх видачі. Хорошими прикладами, де вигідно використовувати кешування є:

  • Запит нашого останнього повідомлення з мережі Twitter
  • Запит і висновок погоди зі стороннього сервісу
  • Запит останніх записів з бази даних
  • Запит назви сайту з бази даних

Кожен з даних запитів можна прискорити за допомогою кешування. Наприклад, якщо ми виводимо наше останнє повідомлення з мережі Twitter на головній сторінці сайту, нам не обов'язково робити запит до мережі Twitter при кожному відвідуванні головної сторінки.

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

Кешування в WordPress

У WordPress існує три основних типи кешування:

  • Кешування сторінок - дозволяє зберігати сторінки цілком в кеш, і видавати їх з кешу на випадок повторних запитів
  • Кешування об'єктів - дозволяє кешувати дані довільного типу
  • Транзитне кешування - дуже схоже на кешування об'єктів, дозволяє зберігати дані на певний проміжок часу

Всі три види кешування перетинаються або залежать один від одного за певних обставин. Про кожному виді ми розповімо докладніше, почавши з самого простого і поширеного.

Кешування сторінок в WordPress

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

Кешування сторінок (page cache) дозволяє зберегти результат видачі всієї сторінки цілком. При подальшому запиті за цією ж адресою видається ця ж сторінка, але вже з кешу, відповідно набагато швидше і з меншим навантаженням на сервер.

При зміні змісту запису або странцу, кеш сторінки скидається, і при подальшому запиті кешируєтся вже нова сторінка з оновленими даними.

У самому ядрі WordPress кешування сторінок не реалізовано, але є всі необхідні функції для реалізації цього на рівні плагінів. Два найпопулярніших плагіна для кешування сторінок - WP Super Cache і W3 Total Cache, хоча існують і інші.

Плагін WP Super Cache

WP Super Cache - найпопулярніший плагін для кешування сторінок в WordPress. Він дозволяє створювати і видавати статичні HTML файли для ваших сторінок, а при певній конфігурації, ви можете настрой видачу цих сторінок безпосередньо вашим веб-сервером (Apache або nginx), минаючи при цьому обробку PHP файлів в цілому.

Він дозволяє створювати і видавати статичні HTML файли для ваших сторінок, а при певній конфігурації, ви можете настрой видачу цих сторінок безпосередньо вашим веб-сервером (Apache або nginx), минаючи при цьому обробку PHP файлів в цілому

Налаштування плагіна WP Super Cache

Нові версії плагіна WP Super Cache мають некотоире додаткові функції, наприклад настройку CDN, підтримку мобільної версії сайту та інше, але основая суть даного плагіна - кешування сторінок.

WP Super Cache підійде як для початківців, так і для більш досвідчених користувачів WordPress, але оскільки він використовує файлову систему для кешіровніая, його буде вкрай складно використовувати для сайту з двома або більше веб-серверами.

Плагін W3 Total Cache

плагін W3 Total Cache більш молодий, ніж WP Super Cache, але не поступається йому за функціоналом. Він дуже швидко набирає популярність, і на сьогоднішній день налічує більше 2 мільйонів скачувань з директорії WordPress.org.

org

Плагін W3 Total Cache

W3 Total Cache дозволяє зберігати закешовану сторінки як на жорсткому диску, так і в пам'яті. Він не зберігає структуру кешу, як робить це WP Super Cache, тому налаштувати видачу без використання PHP неможливо, але на відміну від WP Super Cache використання зовнішнього сховища дозволяє легко працювати в многосерверной архітектурі.

W3 Total Cache має величезну кількість налаштувань і додаткового функціоналу, включаючи підтримку CDN, кешування запитів в базу даних, стиснення скриптів і стилів і багато іншого. Ми рекомендуємо W3 Total Cache для більш досвідчених користувачів WordPress.

плагін Batcache

На момент написання даної статті, плагін Batcache скачали всього близько десяти тисяч разів з директорії WordPress.org, але в даному випадку це не є показником його ефективності. За продуктивністю він не поступається ні WP Super Cache, ні W3 Total Cache.

За продуктивністю він не поступається ні WP Super Cache, ні W3 Total Cache

плагін Batcache

У плагіна Batcache функція всього одна - кешування сторінок, але робить він це бездоганно. Batcache використовує зовнішнє кешування об'єктів для зберігання даних, що дозволяє легко його ісопльзовать в многосерверной архітектурі. Цей плагін використовується у великій мережі WordPress.com, з понад 40 млн сайтів, понад 2000 серверів і більше 10 млрд переглянутих сторінок кожен місяць.

Ми рекомендуємо плагін Batcache тільки для професійних розробників WordPress, оскільки даний плагін не має навіть сторінки з настройками. Вся конфігурація Batcache відбувається в файлі PHP.

Який з плагінів кешування сторінок вибрати вам залежить від розміру вашого сайту, від можливостей вашого хостинг-провайдера і від вашого досвіду роботи з WordPress. Якщо ви не використовуєте плагінів кешування сторінок на даний момент, ми завжди радимо почати з WP Super Cache. Якщо вам важливо мати більше можливостей і більш тонку конфігурацію кешування, спробуйте W3 Total Cache. Якщо ви непогано розбираєтеся в програмуванні і серверному адмініструванні, і готові пожертвувати графічним інтерфейсом під час налаштування - спробуйте Batcache.

Кешування об'єктів в WordPress

Об'єктне кешування (object cache) реалізовано в самому ядрі WordPress. Цей механізм дозволяє зберігати об'єкти довільного типу в пам'яті і корисний в основному розробникам тим і плагінів для WordPress.

Наприклад, при запиті опції з бази даних MySQL за допомогою функції get_option, WordPress збереже результат цієї функції в пам'яті, і при подальшому подібному зверненні видасть результат з пам'яті, не роблячи при цьому запитів до бази даних.

Подібне кешування в ядрі реалізовано для багатьох об'єктів, в тому числі: опції, записи (сторінки, і довільні типи), мета-дані записів, терміни і таксономії. Саме тому, розробникам WordPress не слід бояться користуватися такими функціями як get_option і get_post, тому що подібні звернення не викликають зайвих запитів до бази даних.

Кешування об'єктів в WordPress проводиться за допомогою ряду внутрішніх функцій, в тому числі: wp_cache_add, wp_cache_set, wp_cache_get.

Постійне кешування об'єктів

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

На перший погляд це абсолютно не вигідно, але якщо порахувати скільки раз WordPress викликає функцію get_option для обробки одного запиту (близько 500 разів), то вигода від кешування об'єктів стає очевидною.

Проте, постійне кешування об'єктів (або зовнішнє кешування) в WordPress легко реалізується за допомогою сторонніх плагінів, наприклад Memcached Object Cache або APC Object Cache . Обидва плагіна дозволяють використовувати оперативну пам'ять сервера для зберігання об'єктів WordPress, при цьому об'єкти не пропадають при закінченні запиту. Такий підхід суттєво знижує навантаження на базу даних MySQL.

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

Транзитне кешування в WordPress

Для користувачів даний метод кешування абсолютно прозорий. Транзитне кешування (transient cache) дозволяє розробникам зберігати дані на певний проміжок часу. Цей метод реалізований в WordPress за допомогою функцій get_transient, set_transient і delete_transient.

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

Подібне кешування так само використовується в ядрі при роботі з RSS стрічками, і запитами на оновлення тим, плагінів і ядра WordPress.

На відміну від кешування об'єктів, транзитне кешування є постійним за замовчуванням в WordPress, і зберігає всі дані в базі даних. Але важливо відзначити, що при використанні плагіна для зовнішнього кешування об'єктів (наприклад Memcached або APC), транзитне кешування буде користуватися цим плагіном для зберігання даних.

Кешування об'єктів або транзитне кешування?

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

При використанні плагіна для постійного кешування об'єктів, все три методу будуть користуватися цим плагіном.

висновок

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

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

Кешування об'єктів і тразнітное кешування є досить прозорими для користувачів WordPress, але розробникам важливо добре знати і розділяти ці два механізми. Модулі для зовнішнього кешування об'єктів найчастіше вимагають більше зусиль під час налаштування ніж кешування сторінок.

І нарешті, пам'ятайте, що кешування - це всього один із способів підвищити швидкість вашого сайту. Якщо швидкість для вас важлива, не забувайте про оптимізацію зображень, стисненні скриптів і стилів, оптимізації запитів і бази даних, використання CDN серверів і розподіл навантаження.

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

Що таке кеш?
Що таке кеш?
Кешування об'єктів або транзитне кешування?

Уважаемые партнеры, если Вас заинтересовала наша продукция, мы готовы с Вами сотрудничать. Вам необходимо заполнить эту форму и отправить нам. Наши менеджеры в оперативном режиме обработают Вашу заявку, свяжутся с Вами и ответят на все интересующее Вас вопросы.

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: