Настраиваем Redis для Magento 2

- Magento 2

using redis with magento 2

Далее я расскажу вам о том, как правильно настроить Redis для Magento 2. Если вы никогда не использовали Redis и не знаете, что это такое, то это разновидность кэша с очень высокой производительностью. Более официальная формулировка звучит следующим образом: Redis – это сетевое журналируемое хранилище данных, которое обладает большим количеством возможностей. более подробно читайте здесь .

Так как Redis является, проектом общедоступным и бесплатным, то вы спокойно можете использовать его в своих проектах.

Главная причина высокой производительности кэша кроется в хранении базы данных в оперативной памяти.

Redis и Magento 2

Magento 2 по умолчанию использует Zend_Cache_Backend_File который вы с легкостью можете заменить на Redis. Существует несколько причин, по которым стоит так поступить. Во-первых, это проблемы, связанные с использованием Zend_Cache_Backend_File.

Первая проблема затрагивает 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. Также не забудьте ознакомиться с информацией по установке Redis: Redis Quick Start. Если же официальное руководство кажется вам слишком глобальным, то вот еще один вариант на DigitalOcean. В случае чего смотрите официальную документацию: Redis documentation; и не забудьте посмотреть данное видео:/p>

Настраиваем Redis для Magento 2

Чтобы настроить redis для Magento 2, добавьте следующий код к <your Magento install dir>app/etc/env.php:

Где:

  • 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 оставляйте комментарии под этим постом – мы постараемся помочь.