Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Подключение Redis к ocStore 2.3.0.2.2


Рекомендованные сообщения

  • Alexandr769 изменил заголовок на Подключение Redis к ocStore 2.3.0.2.2

Для сессий я подключил его. На хостинге бегет это делается в 2 клика.

Интересует техническая часть как подключить для кэширования сайта?

Ссылка на комментарий
Поделиться на других сайтах


В 5/22/2017 в 15:18, nikifalex сказал:

чем он лучше того же memcache

Шутка?.. я надеюсь

 

11 часов назад, Alexandr769 сказал:

как подключить для кэширования сайта?

А в чем проблема?

composer require predis/predis

.. и вперед

Ссылка на комментарий
Поделиться на других сайтах

В 22.05.2017 в 15:18, nikifalex сказал:

например можно для сессий

https://www.digitalocean.com/community/tutorials/how-to-set-up-a-redis-server-as-a-session-handler-for-php-on-ubuntu-14-04

но это к опенкарту не относится.

можно как кэш, но чем он лучше того же memcache

 

В рамках задач Opencart  в 99% ровно одинаково.

 

В 23.05.2017 в 20:11, pantagruel964 сказал:

Шутка?.. я надеюсь

 

А в чем проблема?

composer require predis/predis

.. и вперед


Зачем вы так, вы человека выбили из колеи на полгода.

 

Это ж еще и драйвер надо написать.

 

Ссылка на комментарий
Поделиться на других сайтах


6 часов назад, ****** сказал:

Зачем вы так, вы человека выбили из колеи на полгода.

Как раз будет время подумать, зачем ему вообще Редис)) Какие такие задачи человек собрался решать? Списки? - Ну, может быть. Но это скорее сахар, только ради этого - он не нужен. Кластеры? - Трудно представить. Очереди? - Я бы посмотрел на того, кто попытается реализовать очереди в опенкарте :-D

Если это просто кеш, тогда предпочтительнее memcached, тем более на гетах он чутка быстрее.

 

7 часов назад, ****** сказал:

Это ж еще и драйвер надо написать.

Я бы даже драйвер не писал. Он там нужен только ради трушного $this->cache->set(). Наоборот, выпилил бы cache из registry. predis - это уже готовая обертка, можно сразу с места:

$redis = new Predis\Client;

$redis->set('name', 'Vasya');
$redis->get('name'); // 'Vasya'

$redis->rpush('names', 'Vasya');
$redis->rpush('names', 'Petya');
$redis->rpush('names', 'Kolya');
$redis->lrange('names', 0, -1); // ['Vasya', 'Petya', 'Kolya']

 

Ссылка на комментарий
Поделиться на других сайтах

14 часов назад, pantagruel964 сказал:

Как раз будет время подумать, зачем ему вообще Редис)) Какие такие задачи человек собрался решать? Списки? - Ну, может быть. Но это скорее сахар, только ради этого - он не нужен. Кластеры? - Трудно представить. Очереди? - Я бы посмотрел на того, кто попытается реализовать очереди в опенкарте :-D

Если это просто кеш, тогда предпочтительнее memcached, тем более на гетах он чутка быстрее.

 

Я бы даже драйвер не писал. Он там нужен только ради трушного $this->cache->set(). Наоборот, выпилил бы cache из registry. predis - это уже готовая обертка, можно сразу с места:

$redis = new Predis\Client;

$redis->set('name', 'Vasya');
$redis->get('name'); // 'Vasya'

$redis->rpush('names', 'Vasya');
$redis->rpush('names', 'Petya');
$redis->rpush('names', 'Kolya');
$redis->lrange('names', 0, -1); // ['Vasya', 'Petya', 'Kolya']

 

 

Ради непонятно чего - сделать непонятно что, и непонятно зачем.

Чтобы на выходе получить + 5 мс.
Вместо того, чтобы запилить memcache, если сильно чешется и угомониться.

 

И НЕ ЗАМЕТИТЬ РАЗНИЦЫ!

 

off top:

Мы когда собирали площадку для Opencartforum, экспериментировали с разными типами хранилищ системного кеша IpBoard, так вот таки memcache показал самую большую производительность.

Ссылка на комментарий
Поделиться на других сайтах


******, я же об этом и написал, если все заканчивается на гетах и сетах, разницы между редисом и мемкешд на этом этапе никакой. Кому действительно нужны возможности редиса - не спрашивают, как его подключить.

 

nikifalex, што?

Ссылка на комментарий
Поделиться на других сайтах

  • 1 месяц спустя...

******, а можно для тупых ламо подробнее плз

у меня тоже на бегете седня он выдал инфу внимание блок сессий.. потом про редис и сравнение между редисом и мемкешд начал рыть включая их сайт https://beget.com/ru/articles/redis#wp

 

потом форумы и только еще больше запутался что это для чего почему и зачем)... короче надо это или нет и если нет то мемкеш как поставить или он настроен уже стандартно? 

заранее спасибо

Ссылка на комментарий
Поделиться на других сайтах


Ссылка на комментарий
Поделиться на других сайтах


Народ помогите пожалста с мемкеш и редис

последний окстор стоит выдает постоянно блок сессий на бегете. там нифига пояснить не могут

буду очень благодарен за равернутый ответ для ламо что как и куда... что бы блок сессий не был. с бегета не уйду)

 

Ссылка на комментарий
Поделиться на других сайтах


2 часа назад, lsb86 сказал:

Народ помогите пожалста с мемкеш и редис

последний окстор стоит выдает постоянно блок сессий на бегете. там нифига пояснить не могут

буду очень благодарен за равернутый ответ для ламо что как и куда... что бы блок сессий не был. с бегета не уйду)

 

 

Что такое блок сессий? Выдает какую-то ошибку? Текст ошибки есть?

Ссылка на комментарий
Поделиться на других сайтах

7 часов назад, druzhkov сказал:

 

Что такое блок сессий? Выдает какую-то ошибку? Текст ошибки есть?

Обнаружена блокировка сессий в PHP

В течение последних десяти суток ваши сайты не отвечали 14 секунд из-за блокировки сессий в PHP.

Используйте хранение сессий в Redis - это позволит избежать подвисания сайтов по этой причине.
Ссылка на комментарий
Поделиться на других сайтах


8 минут назад, lsb86 сказал:

Обнаружена блокировка сессий в PHP

В течение последних десяти суток ваши сайты не отвечали 14 секунд из-за блокировки сессий в PHP.

Используйте хранение сессий в Redis - это позволит избежать подвисания сайтов по этой причине.

Это вас beget разводит на доп услугу - не ведитесь.

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

12 часов назад, snastik сказал:

Это вас beget разводит на доп услугу - не ведитесь.

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

так то 1 р в день это фигня! если как то ускорит работу сайта или еще какую ползу принесет хоть и не большую то я бы развелся))) на рубль то))

Ссылка на комментарий
Поделиться на других сайтах


"Из коробки" любые данные магазина храняться или в файлах или в базе данных.

Сессии - это уникальный идентификатор посетителя, по которому система узнает его при открытии новых страниц или при последующих посещениях.

 

Соответственно сессия - это небольшой набор данных, который необходимо где то сохранить.
По умолчанию на хостингах сессии храняться в виде пачки небольших файлов в специально отведенной папке.

 

Если трафик небольшой и правильно настроен сборщик мусора, который удаляет протухшие файлы сессий - не возникает никаких проблем.

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

 

Почему это происходит?
Это обусловлено особенностями работы linux  с файловой системой.
Если в папке много файлов, работа с ними замедляется, так как увеличивается время на поиск необходимого файла.

Соответсвенно БЕГЕТу не выгодны проекты, которые активно используют сессии и хранят их в файловой системе, так как увеличивается в целом нагрузка на сервер и замедляется работа всех сайтов, которые он обслуживает.

 

Для того чтобы исправить эту ситуацию, необходимо их вынести в какое-либо хранилище, которое не будет затрагивать работу файловой системы.
Это может быть как база данных так и любое хранилище, которое использует память вместо файловой системы.
В конкретном случае они предоставляют Redis. В других случаях это можеть быть memcache или APC, либо как я уже выше писал база данных.
 

Кстати в Opencart 3.0 сессии по умолчанию храняться в базе.

 

Попробуйте в htaccess добавить следующие инструкции, только адрес подключения к хранилищу, поменяйте на тот, который предоставит beget.

 

php_value session.save_handler redis
php_value session.save_path "tcp://localhost:6379/"

 

  • +1 3
Ссылка на комментарий
Поделиться на других сайтах

5 часов назад, snastik сказал:

"Из коробки" любые данные магазина храняться или в файлах или в базе данных.

Сессии - это уникальный идентификатор посетителя, по которому система узнает его при открытии новых страниц или при последующих посещениях.

 

Соответственно сессия - это небольшой набор данных, который необходимо где то сохранить.
По умолчанию на хостингах сессии храняться в виде пачки небольших файлов в специально отведенной папке.

 

Если трафик небольшой и правильно настроен сборщик мусора, который удаляет протухшие файлы сессий - не возникает никаких проблем.

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

 

Почему это происходит?
Это обусловлено особенностями работы linux  с файловой системой.
Если в папке много файлов, работа с ними замедляется, так как увеличивается время на поиск необходимого файла.

Соответсвенно БЕГЕТу не выгодны проекты, которые активно используют сессии и хранят их в файловой системе, так как увеличивается в целом нагрузка на сервер и замедляется работа всех сайтов, которые он обслуживает.

 

Для того чтобы исправить эту ситуацию, необходимо их вынести в какое-либо хранилище, которое не будет затрагивать работу файловой системы.
Это может быть как база данных так и любое хранилище, которое использует память вместо файловой системы.
В конкретном случае они предоставляют Redis. В других случаях это можеть быть memcache или APC, либо как я уже выше писал база данных.
 

Кстати в Opencart 3.0 сессии по умолчанию храняться в базе.

 

Попробуйте в htaccess добавить следующие инструкции, только адрес подключения к хранилищу, поменяйте на тот, который предоставит beget.

 

php_value session.save_handler redis
php_value session.save_path "tcp://localhost:6379/"

 

пасиба насяльника!

оочень развернуто большое спс!

пожее попробую разобраться с этим а пока что если забью на это дело ничего страшного не произойдет с сайтом ну и вообще?

Ссылка на комментарий
Поделиться на других сайтах


28 минут назад, lsb86 сказал:

пасиба насяльника!

оочень развернуто большое спс!

пожее попробую разобраться с этим а пока что если забью на это дело ничего страшного не произойдет с сайтом ну и вообще?

 

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

Ссылка на комментарий
Поделиться на других сайтах

21 час назад, snastik сказал:

 

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

хех тогда кого же выбрать то? 

долго изучал их анализировал выбирал...

Ссылка на комментарий
Поделиться на других сайтах


  • 3 года спустя...
В 18.07.2017 в 20:49, snastik сказал:

Это вас beget разводит на доп услугу - не ведитесь.

В 19.07.2017 в 10:16, snastik сказал:

Попробуйте в htaccess добавить следующие инструкции, только адрес подключения к хранилищу, поменяйте на тот, который предоставит beget.

 

php_value session.save_handler redis
php_value session.save_path "tcp://localhost:6379/"

Подскажите, это решение для обхода платной услуги на Бегете или дополнительно прописывается при ее включении?

 

 

 

Ссылка на комментарий
Поделиться на других сайтах


В 15.07.2017 в 09:31, lsb86 сказал:

В ОС поддержка кэширования в памяти слабо развита именно потому что движок не рассчитывали на большие объемы и нагрузку. С Memcache бывают проблемы если хостпровайдер не следит за настройками. Бывали случаи когда разные версии библиотек PHP для работы с memcached сервером работают со сбоями и как следствие потери сессий и сбои в работе сайта. Различия memcached сервера и Redis в том, что редиска имеет подкачку на диск и данные, поддерживает разные типы данных и у него меньше ограничений на размеры ключей и объем единицы хранения, в нем даже есть репликация master-slave как в MySQL для построения кластеров. В общем Redis нужен для больших сложных и высоконагруженных систем, которые поддерживают многоуровневое кэширование (данные, фрагменты HTML кода или полные страницы, сессии и т.п.). С редиской можно общаться без установки библиотек (в Magento например есть специальный класс, написанный на PHP, который общается с сервером напрямую и туда суется много чего на разных этапах обработки данных, т.к. движок изначально затачивался под большие высоконагруженные сайты с номенклатурой  в миллионы позиций). В ОС как и в других движках мог бы дать серьезный эффект если бы например в нем хранились бы результаты запросов к БД или даже части отрендеренного HTML кода, но тут требуются доработки и немалые (как тут правильно писали 

composer require predis/predis

и вперед ... подключаете и начинаете допиливать движок). Есть и такие варианты https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=36992&filter_license=1&filter_download_id=35 но опять же вопрос в том, что модуль перехватывает и пыряет в кэш. В зависимости от этого вы либо почувствете эффект, либо нет. Или вот например https://dev-gang.ru/doc/twig/for_developers/ материал с примером реализации кэширования Twig ом шаблонов в кэше (Но сам не пробовал и не уверен что такое целесообразно. По крайней мере в Symfony скомпилированные из шаблонов и настроек файлы все равно хранятся на диске и ни как иначе). Это можно попробовать на ОС 3. Ну и т.д. Или вот вариант кэширования блоков https://github.com/asm89/twig-cache-extension правда это для APC но и для редиски такое можно сделать. Здесь как раз результаты рендеринга можно кэшировать.

Изменено пользователем EVMedvedev
Ссылка на комментарий
Поделиться на других сайтах


  • 1 год спустя...
В 03.06.2017 в 08:28, ****** сказав:

 

Ради непонятно чего - сделать непонятно что, и непонятно зачем.

Чтобы на выходе получить + 5 мс.
Вместо того, чтобы запилить memcache, если сильно чешется и угомониться.

 

И НЕ ЗАМЕТИТЬ РАЗНИЦЫ!

 

off top:

Мы когда собирали площадку для Opencartforum, экспериментировали с разными типами хранилищ системного кеша IpBoard, так вот таки memcache показал самую большую производительность.

Святой человек. Спасибо за совет а то мне хостинг парит редис а я понять немогу зачем. 

Говорит это лучше мемкеш.

 

 

 

Ссылка на комментарий
Поделиться на других сайтах


16.04.2022 в 07:40, licensesoft сказал:

Святой человек. Спасибо за совет а то мне хостинг парит редис а я понять немогу зачем. 

Говорит это лучше мемкеш.

 

 

 

И редис и мемкеш актуальны, в случаях если у вас оооочень много мелких файлов кеша.
Овер 1000 файлов.
Имеючи NVME диск на хостинге - в целом ситуация по скорости нивелируется...


Что касается redis - это почти полноценная база данных, так что он не совсем и про кеш.

Но если рассматривать его как хранилище кеша, то в целом, "из коробки" он более гибок и удобен, так как минимум работает с набором больше 1мб по умолчанию. Мемкеш тоже так умеет но надо настраивать. Ну и основная прелесть redis, в том что он хранит снепшоты текущего состояния и  к примеру при перезагрузке сервера, вы не теряете все данные в кеше, не надо много времени на прогрев. но учитывая, что в OC время жизни кеша 1час, то это также бесполезное свойство!

 

Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.