Як увімкнути стиснення Redis в опенкарт?
Іноді виникає ситуація, коли кеш редису відчутно впливає на швидкість роботи сайту загалом. В нашій ситуації виникла величезна проблема з кешуванням даних для сеопро, як рішення, ми оптимізовали об'єм данних кешу розбив його на декілька елементів. З'явився невеликій приріст швидкості, та нажаль замало. Наступним етапом було вирішено поекспрементувати з стисненням редісу і це дало результат.
Як увімкнути стиснення данних в редіс?
Для початку відкрийте файл /system/library/cache/redis.php
, якщо ви використовуєте модуль redisp , тоді відповідно файл redisp.php
Після перевірки наявності пароля в конструкторі додайте наступну умову (строка ~27):
if(\defined('Redis::OPT_COMPRESSION') && \defined('Redis::COMPRESSION_LZ4')){
$this->cache->setOption(\Redis::OPT_SERIALIZER, \Redis::SERIALIZER_NONE);;
$this->cache->setOption(\Redis::OPT_COMPRESSION, \Redis::COMPRESSION_LZ4);
$this->cache->setOption(\Redis::OPT_COMPRESSION_LEVEL, 6);
}
Тепер кешування використовує стистення і ви можете насолоджуватись швидкістью роботи. Але, якщо це вам не дуже допомогло, то мабуть прийшов час задуматись про переїзд на потужніший сервер.
Що таке redis та як його встановити в опенкарт?
Redis (від англ. remote dictionary server) - Резидентна система управління базами даних класу NoSQL з відкритим вихідним кодом, що працює зі структурами даних типу «ключ - значення». Використовується як баз даних, так реалізації кешів, брокерів повідомлень.
Для початку перевірте чи встановлений редіс на вашому сервері. Для цього створіть будь-який файл з вмістом:
<?php
echo phpinfo();
?>
Тепер скористайтесь пошуком та знайдіть блок із заголовком "Redis", якщо він є, тоді можна продовжувати налаштовувати далі. Якщо ні, тоді:
- У вас шаред хостинг - замовте послугу редіс
- У вас свій сервер - встановіть та налаштуйте редіс
Налаштування редіс в опенкарт 3
Відкрийте файл config.php
в корні та /admin
та додайте наступні константи:
// Redis
define('CACHE_HOSTNAME', '/run/redis/redis.sock'); // хост або сокет
define('CACHE_PORT', '0');
define('CACHE_PREFIX', 'redis_');
define('CACHE_PASSWORD', 'pwd'); // пароль
Потім system/config/default.php
та знайдіть параметр cache_engine
його потрібно замінити на redis, якщо використовуєте модуль - redisp.
$_['cache_engine'] = 'redisp'; // apc, file, mem or memcached