Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

UncleAndy

Users
  
  • Posts

    280
  • Joined

  • Last visited

Everything posted by UncleAndy

  1. Для драйвера БД mysql_cached: 1. Ложите файл mysql_cached.php в каталог system/database/. 2. В корне магазина в файле config.php меняете строку define('DB_DRIVER', 'mysql'); на define('DB_DRIVER', 'mysql_cached'); и добавляете define('DB_CACHED_EXPIRE', 120); НЕ рекомендую ставить этот драйвер в конфигурации админки. Т.к. в админку НЕ встроены средства сброса кэша и это чревато различными "глюками". Для новой библиотеки кэширования: 1. Берете файл cache.php и перезаписываете им файл system/library/cache.php. Эта процедура не нарушит работу сайта - будет использоватся обычный файловый кэшь. 2. Устанавливаете в системе (или на другом сервере) сервер memcached и запускаете его. Это делается просто - без каких-то особенностей. Единственное, что если будете использовать кэширование в memcached совместно с mysql_cached, скорей всего в конфиге memcached нужно будет увеличить размер используемой памяти. На CentOS, например, после установки выделяется 65 Мб. 2. Идете в корень магазина и текстовым редактором дописываете в config.php строки конфигурации (с параметрами своего memcached сервера): define('CACHE_DRIVER', 'memcached'); define('MEMCACHE_HOSTNAME', 'localhost'); define('MEMCACHE_PORT', '11211'); define('MEMCACHE_NAMESPACE', 'opencart_test'); Рекомендую эти-же параметры прописать в файле конфигурации админки - admin/config.php. Сейчас это не очень принципиально, но, надеюсь, в будущем в админке добавяться опции управления кэшем. Параметр MEMCACHE_NAMESPACE нужен для варианта когда одним сервером memcached будут пользоваться разные магазины - для разделения их кэшей.
  2. Возможно работу с БД получится поправить. В контексте написания драйвера для Posgresql автор OpenCart вроде-бы согласился поправить синтаксис SQL запросов на более стандартный. Может быть получится его убедить на использование update/insert в этом случае.
  3. Имя файла: Драйвер БД Mysql с кэшированием запросов Владелец файла: UncleAndy Файл размещен: 08 марта 2011 Категория файла: Прочее Дополнительный драйвер БД для Mysql, в котором происходит кэширование всех SELECT запросов. Время кэширования SQL запросов в секундах задается в config.php: define('DB_DRIVER', 'mysql_cached'); define('DB_CACHED_EXPIRE', 120); Нажмите сюда, чтобы скачать этот файл
  4. Я сейчас контактирую с разработчиками. Вполне вероятно, что в районе версии 1.5.1 эти изменения войдут в основную ветку. Возможно, вместе с драйвером для Postgresql. :)
  5. Сделал две модификации для улучшения кэширования через memcached. Может быть полезно при большой нагрузке и/или использовании нескольких бэкэндов с общим кэшем. 1. Модификация system/library/cache.php для возможности работать с Memcached. Параметры в config.php: define('CACHE_DRIVER', 'memcached'); define('MEMCACHE_HOSTNAME', 'localhost'); define('MEMCACHE_PORT', '11211'); define('MEMCACHE_NAMESPACE', 'opencart_test'); При другом значении CACHE_DRIVER или отсутствии соединения с сервером memcached, будет использоваться стандартное кэширование в файлы. 2. Сделал вариант драйвера БД mysql_cached, в котором кэшируются запросы SQL. Время кэширования настривается через config.php: define('DB_CACHED_EXPIRE', 120); Для сброса всего SQL кэша можно поместить текущее время time() в кэшь с ключем "sql_globalresetcache". PS. В данный момент делаю драйвер БД для postgresql. cache.php mysql_cached.php
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.