Настраиваем Redis для Magento 2
Далее я расскажу вам о том, как правильно настроить Redis для Magento 2. Если вы никогда не использовали Redis и не знаете, что это такое, то это разновидность кэша с очень высокой производительностью. Более официальная формулировка звучит следующим образом: Redis – это сетевое журналируемое хранилище данных, которое обладает большим количеством возможностей. более подробно читайте
Так как Redis является, проектом общедоступным и бесплатным, то вы спокойно можете использовать его в своих проектах.
Главная причина высокой производительности кэша кроется в хранении базы данных в оперативной памяти.
Redis и Magento 2
Magento 2 по умолчанию использует
Первая проблема затрагивает core_cache_tag. В случае с несколькими магазинами и большими каталогами, он разрастается аж до 15 миллионов записей меньше чем за сутки. А тут уже и проблем с MySQL сервером не избежать, включая существенное понижение производительности.
Вторая причина связана с TwoLevels бэкендом. Такой тип бекэнда гораздо сложнее держать в порядке, так как для его использования необходимо сразу два сервиса. Кроме того, не стоит забывать об ограничениях относящихся к memcached.
Третья проблема – это масштабирование. К сожалению, Zend TwoLevels бэкенд включает в себя базу данных, что добавляет нагрузку на сервер (master database server). This adds an additional load to the master database server. Также не стоит забывать о недостатках memcached репликации..
Что же касается Redis, то это решение не только помогает избежать указанных выше проблем, но и обладает рядом важных преимуществ. Так, данный кэш можно использовать в качестве сессионного хранилища для PHP (PHP session storage), полностью избежав при этом использования memcached. Необходимо также отметить, что Redis бэкенд использует индексирование файловых тегов (indexing file tags), так что операции с тегами не требуют полного сканирования всех кэш файлов.
Кроме того, Redis хранит metadata и cache record в одном файле, что позволяет сократить количество inodes и других операций. А еще Redis не требует foreach лупов (циклов) для чистки кеша на основе тегов (tag-based cache cleanups), и поддерживает такие фичи, как on-disk save и master/slave replication.
Как установить Redis
Во-первых, вам необходимо скачать Redis. Для этого стоит использовать официальный сайт решения:
Настраиваем Redis для Magento 2
Чтобы настроить redis для Magento 2, добавьте следующий код к <your Magento install dir>app/etc/env.php:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
'cache' => [ 'frontend' => [ 'page_cache' => [ 'backend' => 'Cm_Cache_Backend_Redis', 'backend_options' => [ 'server' => '127.0.0.1', 'port' => '6379', 'persistent' => '', 'database' => 0, 'password' => '', 'force_standalone' => 0, 'connect_retries' => 1, ], |
Где:
- page_cache необходимо использовать, чтобы указать конкретный сегмент для других кешей. Используя default, вы настроите все остальные сегменты кэша кроме page_cache.
- server – URL Redis сервера. Если Redis установлен на сервере Magento, используйте 127.0.0.1 . В зависимости от ситуации, это может быть путь к UNIX сокету.
- port – Redis server listen port.
- persistent указывает на string для подключения постоянных соединений. sess-db0, например.
- database – уникальный номер базы данных Redis. Необходимо защитить от потери данных.
- password – пароль Redis сервера, если такой имеется.
- force_standalone – для phpredis необходимо использовать 0; для standalone PHP – 1;
- connect_retries – устраняет проблемы, вызванные случайными ошибками соединения. Для отключения используйте 1 .
В случае возникновения проблем при настройке Redis для Magento 2 оставляйте комментарии под этим постом – мы постараемся помочь.