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

UncleAndy    16

Имя файла: Memcache support

Владелец файла: UncleAndy

Файл размещен: 08 марта 2011

Файл обновлен: 25 марта 2011

Категория файла: Прочее

Включает возможность использования кэширования через сервер Memcached. Может быть полезно при использовании нескольких серверов с единым кэшем для балансировки нагрузки.

Установка:

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');

Если в CACHE_DRIVER установлено другое значение или нет подключения к memcached серверу, будет использоваться стандартный файловый кэш.

Рекомендую эти-же параметры прописать в файле конфигурации админки - admin/config.php. Сейчас это не очень принципиально, но, надеюсь, в будущем в админке добавяться опции управления кэшем.

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

Версия 1.01: Поправлен конструктор для лучшего быстродействия. Не обрабатывает файлы в каталоге файлового кэша если работает режим memcache.

Внимание! Начиная с версии ocStore 0.1.9 данное изменение включено в состав основного кода.

Нажмите сюда, чтобы скачать этот файл

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
UncleAndy    16

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
aachernishev    38

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

Прошу прощения, долго искал совместимые memcached для win и php_memcache.dll .. не нашел, может, у Вас есть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Yesvik    485

Прошу прощения, долго искал совместимые memcached для win и php_memcache.dll .. не нашел, может, у Вас есть?

Надеюсь это надо для экспериментов на локалке.

MemCached.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
UncleAndy    16

Погуглить не пробовали? Вот в первой строке результатов выдается - http://habrahabr.ru/blogs/php/25296/

И и нструкция по установке и ссылки на все нужные файлы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
aachernishev    38

Надеюсь это надо для экспериментов на локалке.

да, конечно :)

спасибо +1)

Погуглить не пробовали? Вот в первой строке результатов выдается - http://habrahabr.ru/blogs/php/25296/

И и нструкция по установке и ссылки на все нужные файлы.

Пробовал.

Да, я видел эту статью, однако там ссылка на PECL-модуль битая, но всё равно спасибо ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
fjeka    8

У меня на одном хосте несколько магазинов разной тематики, но на одном движке версии 1.5.1.3. Что лучше прописать в define('MEMCACHE_NAMESPACE', 'opencart_test'); чтобы кэшировалось оптимально ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SaSS    17

Есть ли решение для ocstore 1.5.1.3?

пробовал использовать этот файл, но сыпется

2012-03-22 10:47:59 - PHP Warning:  session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at /var/www/****/index.php:106) in /var/www/*****/system/library/session.php on line 11
2012-03-22 10:59:12 - PHP Notice:  Memcache::get() [<a href='memcache.get'>memcache.get</a>]: Server localhost (tcp 11211) failed with: Failed reading line from stream (0) in /var/******/system/library/cache.php on line 38

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
NemoTec    12

Есть ли решение для ocstore 1.5.1.3?

пробовал использовать этот файл, но сыпется

2012-03-22 10:47:59 - PHP Warning:  session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at /var/www/****/index.php:106) in /var/www/*****/system/library/session.php on line 11
2012-03-22 10:59:12 - PHP Notice:  Memcache::get() [<a href='memcache.get'>memcache.get</a>]: Server localhost (tcp 11211) failed with: Failed reading line from stream (0) in /var/******/system/library/cache.php on line 38

Использую это расширение на ocstore 1.5.1.3 - всё работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
leonid93    3

На версии 1.5.3.1 при открытии сайта просто белый экран.

Что делать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
RGB    1 012

После плясок с бубном вокруг ритуального костра лучший результат, которого удалось добиться на 1521 - это 500-я ошибка сервера :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
RGB    1 012

Поддержка на хостинге что-то у себя поменяла и теперь все отлично работает - странички загружаются в 3-4 раза быстрее, так что решение можно считать рабочим (ОС 1.5.2.1)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Raensul    133

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
RGB    1 012

Неважно, просто попросите хостера все вам поставить, если у вас нет поддержки мемкешеда

Если хостер нормальный, то пойдет навстречу и что-то выделит, если нет, могу посоветовать нормального)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
tarvolok    13

Opencart 1.5.4.1 - запустить не удалось, Fatal error: Class 'Memcache' not found in /var/www/data/www/site.com/system/library/cache.php on line 12

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
freelancer    1 411

у вас нет поддержки Memcache на хостинге, но есть шанс что появится если напишите хостеру

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
tarvolok    13

у вас нет поддержки Memcache на хостинге, но есть шанс что появится если напишите хостеру

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
RGB    1 012

Кто использует это решение, подскажите пожалуйста, как очистить кеш memcached?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
empty    14

Здравствуйте. А вот я впервые столкнулся с таким - посоветовали поставить такое кеширование знающие люди. Вот моё инфо - memcached установлен. Но я вообще не понимаю какие данные данные вставлять заместо стандартных: 

define('CACHE_DRIVER', 'memcached');define('MEMCACHE_HOSTNAME', 'localhost');define('MEMCACHE_PORT', '11211');define('MEMCACHE_NAMESPACE', 'opencart_test');

И в какую часть config.php  их вставлять. Подскажите пожалуйста?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
RGB    1 012

У хостера спросите, какие вам указать параметры мемкеша, а вставлять можно в конец конфига, перед 

?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
empty    14

 

У хостера спросите, какие вам указать параметры мемкеша, а вставлять можно в конец конфига, перед 

?>

Спасибо. Теперь стало понятнее)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
AlexBog    7
 (3) in /var/www/user/data/www/сайт.ru/system/library/cache.php on line 68
2013-12-20 18:34:49 - PHP Notice:  MemcachePool::set(): Server localhost (tcp 11211, udp 0) failed with: SERVER_ERROR object too large for cache
 (3) in /var/www/user/data/www/сайт.ru/system/library/cache.php on line 68
2013-12-20 18:34:51 - PHP Notice:  Use of undefined constant CACHE_DRIVER - assumed 'CACHE_DRIVER' in /var/www/user/data/www/сайт.ru/system/library/cache.php on line 10
2013-12-20 18:34:52 - PHP Notice:  Use of undefined constant CACHE_DRIVER - assumed 'CACHE_DRIVER' in /var/www/user/data/www/сайт.ru/system/library/cache.php on line 39
2013-12-20 18:34:52 - PHP Notice:  Use of undefined constant CACHE_DRIVER - assumed 'CACHE_DRIVER' in /var/www/user/data/www/сайт.ru/system/library/cache.php on line 66
2013-12-20 18:34:52 - PHP Notice:  Use of undefined constant CACHE_DRIVER - assumed 'CACHE_DRIVER' in /var/www/user/data/www/сайт.ru/system/library/cache.php on line 86

Установлен и memcached и memcache при проверке кодом

<?php 
$memcache = new Memcache;
$memcache->connect('127.0.0.1', 11211);
echo 'Memcache ver: ' . $memcache->getVersion();
?>

показывается версия, но ошибки которые сверху постоянно появляются.

Есть мысли что сделано не так, хостеру уже мозг взорвал

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
snastik    824

Большое, человеческое спасибо. Завелось с полтычка, на VPS с SSD - прирост незначительный, 10% время генерации страницы с категорий (в магазине 3500 товаров) снизилось с 1 до 0,85-0,9 сек.

 

На днях буду ставить на сервер с  обычными винтами.

 

По результатам отпишусь. Еще раз спасибо за отличное готовое решение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
RGB    1 012

По результатам отпишусь. 

Отпишитесь пожалуйста, как почистить кеш этого прекрасного решения) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
snastik    824

Дописочку надо делать.

Можно прямо в футер дописать в админке. 

 

откуда то вызвать что то похожее на это 

 

$this->cache->delete ('*');

 

По идее должно сработать!

 

Завтра отпишусь подробнее.

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу