Кеширование¶
Для снижения нагрузки на сервер и увеличения скорости загрузки различных частей приложения TeleCart в модуле реализована собственная система кеширования. Данные подготавливаются и сохраняются в хранилище кеша. Если эти данные запрашиваются повторно, ресурсы на их подготовку тратиться не будут — будет возвращён уже сохранённый результат из кеша.
Выбор хранилища¶
Очевидно, что скорость получения данных из кеша напрямую зависит от скорости работы хранилища кеша. Модуль TeleCart умеет работать с двумя хранилищами — MySQL и Redis. По умолчанию модуль использует MySQL в качестве хранилища, однако, если на сервере установлен Redis, рекомендуется использовать именно его. Благодаря специфике Redis как хранилища данных он позволяет достичь наибольшей скорости работы витрины TeleCart.
MySQL¶
Модуль использует MySQL в качестве хранилища кеша по умолчанию, всё работает "из коробки", никаких дополнительных манипуляций со стороны пользователя не требуется.
Redis¶
Переключить драйвер кеша TeleCart на использование Redis можно задав переменную окружения TELECART_CACHE_DRIVER=redis. Это можно сделать задав в окружении Linux эту переменную, чтобы PHP процесс имел к ней доступ через getenv. Либо, что проще, создать файл .env с нужным значением.
Step-by-step инструкция:
- Подключиться к серверу по SSH и перейти в директорию
upload, в которую установлен OpenCart (там где находятсяadmin,catalog,system). - Перейти по пути
system/library/oc_telegram_shopи убедиться что в ней находится файл TeleCart модуля -oc_telegram_shop.phar. -
Рядом с
oc_telegram_shop.pharсоздать файл.envи прописать в нём следующие переменные окружения:TELECART_CACHE_DRIVER=redis TELECART_REDIS_HOST=127.0.0.1 TELECART_REDIS_PORT=6379 TELECART_REDIS_DATABASE=0Значения
TELECART_REDIS_HOST,TELECART_REDIS_PORTиTELECART_REDIS_DATABASEбудут зависеть от того, как настроен конкретно ваш инстанс Redis. -
Зайти в настройки TeleCart модуля и убедиться, что в системной информации, в качестве драйвера кеша действительно используется redis.
Кнопка просмотра системной информации в модуле TeleCart.
Redis драйвер кеша для TeleCart
Сброс кеша¶
Разные части витрины TeleCart имеют разный TTL кеша. Из этого следует, что данные в кеше со временем устаревают. Модуль TeleCart имеет продвинутую систему кеширования и автоматически производит инвалидацию (сброс) кеша. В большинстве случаев никаких дополнительных действий от пользователя не требуется. Однако в некоторых ситуациях может понадобиться принудительный сброс кеша раньше, чем произойдёт его автоматическая инвалидация.
Информация
Сброс кеша в TeleCart никак не связан с кешем OpenCart. Кеш TeleCart реализован как отдельный механизм для достижения максимальной эффективности.
Сброс через UI¶
В административной панели предусмотрена сервисная кнопка для принудительного ручного сброса кеша.
Кнопка ручного сброса кеша в настройках модуля TeleCart
При нажатии на кнопку кеш будет сброшен, а пользователь увидит всплывающее уведомление об успешном выполнении операции.
Сброс через CLI¶
В некоторых случаях может быть полезна возможность сброса кеша через CLI-терминал. Это удобно, когда требуется сбрасывать кеш по расписанию (например, по CRON раз в сутки) либо выполнять сброс после завершения других процессов (например, после процедуры импорта новых товаров в OpenCart). Для этого предусмотрена специальная CLI-команда TeleCart, которую можно запускать вручную через терминал или вызывать из другой программы.
php ./system/library/oc_telegram_shop/cli.php cache:clear
Подробнее о запуске консольных TeleCart CLI команд.


