Magento Cache - плутанина щодо лаку, Redis, APC, Memcache


34

Я намагаюся покращити виступи Magento (незабаром чи пізніше "MageDev" потрапив у цю точку :)

Я провів деякі дослідження і знайшов багато хороших, але не однорідних посібників.

Що я отримав, це те, що:

  • MemCache або Redis - це загальна кеш-система, вони кешують дані, і вони можуть бути інтегровані безпосередньо з Magento ( local.xml )
  • APC - це кеш для самого коду php, який можна інтегрувати лише на рівні сервера.
  • Лак - це зворотний проксі, він може кешувати відповідь, може бути інтегрований лише на рівні сервера. (є розширення для Magento, скипидару, але я не впевнений, що саме робить)

Зрештою цього хорошого читання я все ще трохи розгублений щодо того, яку з вищезазначених систем кешу можна використовувати в комбінаціях, для EX:

  • MemCache + APC?
  • Redis + APC?
  • чи можу я додати лак до однієї з перерахованих вище конфігурацій?

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


Чи можете ви використовувати FPC + лак + скипидар разом? дякую
Бруно Альваренга

Скипидар призначений для пробивання отвору кешу лаку. Як і в, скипидар використовується для видалення лаку.
siliconrockstar

Відповіді:


48

TL; DR - У MageStack ми використовуємо Varnish, Redis (кеш), Redis (сеанси) та Eaccelerator / Zend OPCache (залежно від версії PHP)

Ви вже зрозуміли більшість із цього.

Бекенд кешу, сховище сесій, кеш-код коду, кешування повної сторінки та кеш-зворотний проксі - абсолютно різні.

Ви можете використовувати різні технології для всіх, і ви можете використовувати ВСІ одночасно (включаючи лак та FPC)

Кеш-бекенди

  • Файли (основні) за замовчуванням
  • Memcache (Core)
  • APC (Core)
  • Редіс (<1.9 модуль люб’язно Колін Молленхур)
  • MongoDB (модуль люб’язно наданий Коліну Молленхуру)
  • Rubic (модуль люб’язно Даніель Слооф)

Ви можете використовувати лише один бекенд кешу.

Всупереч поширеній думці, використання кешу на основі пам'яті не покращить продуктивність. Але це дозволить подолати деякі фатальні недоліки кешування на основі файлів за замовчуванням Magento.

Щодо написання цього повідомлення, Редіс - моя рекомендація.

Сеансові магазини

  • Файли (основні) за замовчуванням
  • Memcache (Core)
  • Редіс (<1.9 модуль люб’язно Колін Молленхур)
  • MongoDB (модуль люб’язно наданий Коліну Молленхуру)

Ви можете використовувати лише один магазин сесій.

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

Щодо написання цього повідомлення, Редіс - моя рекомендація.

Кеш OpCode

  • APC
  • XCache
  • Еакселератор (PHP <5.4)
  • Zend OPCache (PHP> 5.4)

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

Мої рекомендації наведені в дужках вище.

Для використання цього модуля не потрібно встановлювати модуль.

Зворотний кеш-проксі

  • Лак
  • Nginx
  • Апач
  • … і багато іншого

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

Використовуйте його, коли це необхідно (тобто не для прискорення повільного сайту, а для зменшення використання ресурсів на швидкому сайті).

Щоб використовувати зворотний проксі-сервер, йому потрібно як увімкнути сторону сервера, так і потрібен модуль для Magento.

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

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

Повний кеш сторінки

  • EE FPC
  • … Багато інших (через модулі)

Використовуйте його, коли це необхідно (тобто не для прискорення повільного сайту, а для зменшення використання ресурсів на швидкому сайті).

Всупереч поширеній думці, ви можете (і повинні) використовувати FPC у поєднанні з зворотним кешем проксі. Вони вирішують різні проблеми та мають різні можливості.

FPC можуть використовувати більше інтелекту, оскільки вони мають прямий доступ до сеансу користувачів та ядра Magento, тоді як зворотний проксі не відомий додатку (він досить тупий у тому, як це працює) - тому двоє доповнюють один одного, не конкуруючи один з одним .

Тобто Не думайте, що лак чи FPC, подумайте про Varnish та FPC.


1
Якась підказка mod_pagespeed? до речі , великий і ясну відповідь ТНХ
Від

2
Безліч рекомендацій. Але сфера PageSpeed ​​набагато перевищує ваше первісне питання (і багато в чому не пов'язане з самим Magento). Тут є кілька порад щодо нашого КБ, sonassihosting.com/help/magestack/…
Бен Лессані - Сонассі

Чітка сегрегація між різними шарами кешування, які можна використовувати з Magento. Найголовніше рекомендація. Однак ви, здається, не рекомендуєте використовувати кеш лаку всупереч рекомендаціям щодо документації magento, див. - devdocs.magento.com/guides/v2.3/config-guide/varnish/…
Patil

@PandurangPatil Ви знаєте, що моя відповідь була з 8 років тому - коли Magento 2 не існувало ... Звідси мої коментарі "На момент написання". Якби Magento 2 існував, коли було задано це питання, моя відповідь була б іншою.
Бен Лессані - Сонассі

@ BenLessani-Sonassi Я не звертав уваги на дату. У будь-якому разі, чи рекомендуєте ви використовувати кеш лаку в сьогоднішньому контексті з magento 2.x?
Pandurang Patil

8

Я б поїхав на Redis + APC з лаком на вершині.

"Чому Редіс" запитаєте ви? Прочитайте цю чудову відповідь . Redis в основному замінює стандартну систему кешування на основі файлів Magento. Оскільки Redis швидше, це дозволить вам покращити швидкість.

Лак насправді не має такого великого відношення до внутрішніх виробів. Він розміщений на вершині та зберігає статичний вміст, тому він ніколи насправді не звертається до Magento як запит. За винятком перфорованих отворів деталей, які є.

У той час як Varnish зосереджується на кешуванні фронтену, Redis також прискорить використання інших типів кешу, таких як кеші EAV та конфігурації.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.