На форуме 9558 тем, 76453 сообщений, 44667 участников
тема · 6 358 просмотров · 60 ответов

Opencart3 и MYSQLI_Memcached (Memcached Speed Booster) драйвер проблемы

Общие вопросы
читают: 0 участников и 1 гость
порядок
14 ноя 2019 23:07· изменено#41
Ravilr написал(а): ↑lда, под редис переделал.

ну у меня на хостинге два ядра доступны, а redis не умеет многопоточно работать, потому у себя остановилcя не memcached

P.S. тем более везде пишут, что redis по скорости работы приближается к memcache, а основным преимуществом является работа со списками.

Ravilr написал(а): ↑lкак раз дело в том, что редактирование заказа производится через апи, а апи находится на витрине. А на витрине запросы кешируются у вас. Необходимо исключить мешающий запрос. И не забывать, когда редактируете т.е добавляете исключение в библиотеку, необходимо полностью очищать кеш, в вашем случаи это Memcache, иначе получится так, что изменения внесли, а запросы идут в кеш, так как в кеше есть запись. Именно так у вас и происходило с авторизацией.

добавил все таблицы order_, customer_, address и api_
кэш тоже чистил и не только memcache
но попробую еще раз, может не дочистил.
15 ноя 2019 08:38#42
AndreyPopov написал(а): ↑обавил все таблицы order_, customer_, address и api_

Важно не то что "добавил", а то что вы проверяете. Если внимательно посмотрите на последний код который я привел, там есть символ ` и именно он и есть в запросе. В общем проверяйте именно запрос, а не просто вставив таблицу.
17 ноя 2019 14:49#44
пока отложил исследование и решение этого вопроса, потому что возникла проблема с логином и регистрацией на странице заказа из-за конфликта модулей Journal и D-Seo.

как оказалось около 80% покупателей, с начала накидывают товар в корзину и только на странице оформления заказа регистрируются или входят в аккаунт.


ну и как водится авторы модулей начинают с того, что пиняют друг на друга :(
18 ноя 2019 11:06#45
AndreyPopov написал(а): ↑пока отложил исследование и решение этого вопроса,

Поэтому как писалось выше, в вашем случаи просто кешировать отдельные запросы и будет все работать. Скорей всего у вас настолько все изменено в запросах, что вы просто неправильно указываете сам запрос, так как его не видите и не знаете как посмотреть.
19 ноя 2019 20:16#46
сейчас в драйвере вот это прописано:

php
  $select_id = (0 <= stripos($sql, 'SELECT') ) ? sha1($sql) : false;

if (stripos($sql, 'FROM ' . DB_PREFIX . 'cart')) $select_id = false;


if (stripos($sql, 'FROM `' . DB_PREFIX . 'session')) $select_id = false;


пользователи входят, создают заказы
заказы в админке редактируются

но …. теперь такой глюк - под Гостем не дает создавать заказы

при отправке заказ ругается, что не указан e-mail, хотя он указан.
при чем СМС уведомление приходит о заказе, в базу информация прописывается без указания кто сделал заказ
создан новый заказ.
но при этом в самих заказах его не видно.
Вложения · 1
journa_checkout_guest.jpg
20 ноя 2019 10:12#47
AndreyPopov написал(а): ↑но …. теперь такой глюк - под Гостем не дает создавать заказы

Вполне возможно. Например можно добавить
php
        if (stripos($sql, 'FROM ' . DB_PREFIX . 'customer'))  $select_id = false;
if (stripos($sql, 'FROM ' . DB_PREFIX . 'setting')) $select_id = false;


А можно еще что то. Если не можете правильно определить мешающий запрос (!!! именно запрос, а не таблицу) то проще плясать от обратного, т.е кешировать только нужные запросы. Не забываем при этом после изменений сбрасывать кеш мемкеша полностью (не перезапуском, а именно сбросом... почитайте доку.)
20 ноя 2019 17:54· изменено#48
на тестовом сайте вообще возникла какая-то "непонятка".

по умолчанию в настройках уведомлений стояла отправка Mail
на рабочем стоит SMTP.

попробовал на тестовом поставить SMTP - теперь на тестовом все время ругается на мыло, даже если снова вернуть Mail

Ravilr написал(а): ↑. Не забываем при этом после изменений сбрасывать кеш мемкеша полностью (не перезапуском, а именно сбросом... почитайте доку.)

да, кэш чищу постоянно. у меня у хостера в панеле управления это есть
memcache_full.jpg

memcache_clear.jpg
20 ноя 2019 19:44#49
если в настройках уведомлений стоит Mail - заказы оформляются

если стоит SMTP - выскакивает ошибка
14 янв 2020 14:17#50
Чем в итоге все закончилось?
14 янв 2020 18:52#51
Hunter-38 написал(а): ↑Чем в итоге все закончилось?


оставил уведомления по Mail и прописал исключения для запросов.

вот уже два месяца трудится в таком варианте.
14 янв 2020 20:44#52
Напомните пожалуйста название модуля, он платный или как?


AndreyPopov написал(а): ↑оставил уведомления по Mail и прописал исключения для запросов.

вот уже два месяца трудится в таком варианте.
15 янв 2020 01:11#53
Hunter-38 написал(а): ↑Напомните пожалуйста название модуля, он платный или как?

в первом посте темы все данные есть (бесплатный)
15 янв 2020 02:07#54
AndreyPopov написал(а): ↑в первом посте темы все данные есть (бесплатный)


Да, скачал, поставил, в конфигах внес коррективы, единственно в доках сказано
3. Change your cache driver to null (index.php)

Но у меня в этом файле:
так куда прописать П.3 ?
code
<?php
// Version
define('VERSION', '2.3.0.2');

// Configuration
if (is_file('config.php')) {
    require_once('config.php');
}

// Install
if (!defined('DIR_APPLICATION')) {
    header('Location: install/index.php');
    exit;
}

// Startup
require_once(DIR_SYSTEM . 'startup.php');

start('catalog');
15 янв 2020 03:35#55
Разобрался, очень глючный модуль, прибавки прям так уж акк нахваливают нет, процентов 15 не более, и все кеширует, что попало в кеш там и остается, даже смена дизайна, пипец... пока не презагрузиш сам сервис мемкеша... Не, на продакшн не пойдет, рискованно, да, еще и ошибки вылезают в модальном окне когда пытается зарегится....
15 янв 2020 13:21· изменено#56
Hunter-38 написал(а): ↑Да, скачал, поставил, в конфигах внес коррективы, единственно в доках сказано
3. Change your cache driver to null (index.php)


если читали внимательно, то это изменять надо в system/config/default.php
но …..
это не обязательно
во-первых OpenCart 3.0 вообще НЕ принимает имя null, потому его лучше изменить на nocache.php
во-вторых там лучше прописать стандартный драйвер memcache


Hunter-38 написал(а): ↑ и все кеширует, что попало в кеш там и остается, даже смена дизайна, .


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


Hunter-38 написал(а): ↑прибавки прям так уж акк нахваливают нет, процентов 15 не более

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


Hunter-38 написал(а): ↑ да, еще и ошибки вылезают в модальном окне когда пытается зарегится....

исключайте таблицы из кэширования.

кэшировать надо только статические данные, те которые перезаписываются во время работы пользователя надо исключать из кэширования.
15 янв 2020 18:36#57
Благодарю!
PS да, оперативки много, SSD диски, шустрый сервер в целом

AndreyPopov написал(а): ↑если читали внимательно, то это изменять надо в system/config/default.php
но …..
это не обязательно
во-первых OpenCart 3.0 вообще НЕ принимает имя null, потому его лучше изменить на nocache.php
во-вторых там лучше прописать стандартный драйвер memcache


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


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


исключайте таблицы из кэширования.

кэшировать надо только статические данные, те которые перезаписываются во время работы пользователя надо исключать из кэширования.
25 фев 2020 20:06#58
google_console_speed.jpg ну вот можно сказать, что время отклика сайта драйвер все же поднял, что подтверждает тот же Google Search Console
26 фев 2020 11:06#59
AndreyPopov написал(а): ↑что время отклика сайта драйвер все же поднял,

Конечно поднимает. Когда много товаров и сложных запросов, а они закешированы, то естественно и отклик быстрее.
22 июн 2020 09:00#60
Добрый день, подскажите пожалуйста
добавил в Index.php
// Cache
$cache = new Cache('Null'😉;
$registry->set('cache', $cache);
получаю:
PHP7.0
Ошибка: PHP message: PHP Fatal error: Cannot use 'Null' as class


В папке system/config/default.php кроме index.html нет ничего
в config.php
define('DB_DRIVER', 'mysqli_memcached'😉;

порт в драйвер проставил
При попытке найти через
netstat -ltupn | grep memcached
его не нахожу

прошу подсказки по настройке,
ОС Version 2.1.0.1 (rs.2)
memcached support => enabled
libmemcached version => 1.0.18
Заранее благодарю
сообщения 41–60 из 61
Чтобы ответить, войдите или зарегистрируйтесь.

Похожие темы