Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Кэширование через memcached и драйвер mysql_cached


UncleAndy

Recommended Posts

Не знаю насчет mysql_cached, но memcache прекрасно работает и заметно ускоряет работу сайта

 

Насчет memcached ни кто не говорит, он отрабатывает отлично! А вот драйвер mysql_cached - это гибель большому кораблю

Надіслати
Поділитися на інших сайтах

markimax, если товаров много, это понятно ФС начинает тупить, а если прикрутить memcache ?

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

 

в своё время так же отключал этот скрипт из-за тормозов ФС на большой базе.

 

Да нет всё в порядке, и без memcached все отлично работает, как только "снес" mysql_cached . А вот с mysql_cached - большая проблема. Просто я пишу, что пользователи его не использовали - ну ооочень сырой. Просто все ведутся на слово кешед, а здесь как раз обратный вариант.  -> mysql_brake

 

А кто делал его? Идея ничего, но реализация сырая

Надіслати
Поділитися на інших сайтах

memcache использовать в связке с этим модулем я предложил

 

А сам mysql_cached чей? Там его немного допилить и в принципе будет все ОК. Просто надо кешем сделать файлы с массивом запросов (а не каждый запрос отдельным файлом) по каким либо признакам, чтобы не перегружали ФС

Надіслати
Поділитися на інших сайтах

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

 

Логично, я тоже как то так делал, на большом количестве товаров для картинок, правда по первым трем символам

Надіслати
Поділитися на інших сайтах

  • 4 weeks later...

Подскажите как это правильно сделать? Что и куда дописать?

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

Либо же, что еще лучше - при достижении количества в 1000 файлов, начинающихся на "cache.sql_"

Как это сделать?

 

Этот механизм предназначен не для очистки кэша, а для его логического сброса. Т.е. когда в следующий раз будет обращение к данным, которые в кэше есть, но при этом они были размещены в кэше раньше чем последнее время сброса, то будет считаться что в кэше этих данных нет.

Такое сделано для "мгновенной" деактулизации данных в кэше без необходимости стирать в нем данные (т.к. это долгая, и, иногда, не тривиальная операция). Я добавил эту возможность, т.к. сам сталкивался с такой необходимостью.

  • +1 1
Надіслати
Поділитися на інших сайтах


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

Надіслати
Поділитися на інших сайтах

  • 1 month later...
  • 1 month later...

Ребята. Помогите. 

OcStore 1.5.5.1.1

Все по инструкции сделал

Пишет ошибку:

Fatal error: Class 'Memcache' not found in /home/***/public_html/***/system/library/cache.php on line 12

В этом файле 12 строчка:

$mc = new Memcache;

 

Написал в техподдержку

Да, memcache установлен, порт стандартный:
tcp        0      0 :::11211                    :::*                        LISTEN      1039987/memcached

 

Может для моей версии OcStore нужен другой файл system/library/cache.php????

Надіслати
Поділитися на інших сайтах


phpinfo ничего не расписано по мэмкэшу.

Из панели управления вообще очень мало параметров видно.

 

 

Вот все, что мне доступно.

 

Конфигурация PHP

 

main asp_tags  Off
main file_uploads  On
main include_path  .:/usr/lib/php:/usr/local/lib/php
main max_execution_time  120
main max_input_time  60
main memory_limit  192M
main register_globals  Off
main safe_mode  Off
main upload_max_filesize  128M
main session.save_path  /tmp

 

Что мне конкретнее надо спросить?

Я задал техподдержке вопрос:

При запуске жалуеться на
Fatal error: Class 'Memcache' not found in /home/***/public_html/***/system/library/cache.php on line 12
Жалуеться на эту строчку:
                    $mc = new Memcache;

Вчера  звонил  в  техподдержку.  Мне  сказали,  что  у  вас установлен
Memcache  для  виртуального  хостинга.  Может  у  меня  не  правильные
параметры подключения?

 

И получил ответ

Здравствуйте. Да, memcache установлен, порт стандартный:
tcp        0      0 :::11211                    :::*                        LISTEN      1039987/memcached
Надіслати
Поділитися на інших сайтах


Ответили

 

Установили memcache for php.

Но все та же ошибка. 

После установки этого параметра случайно не надо перезагружать php? А то у меня большие сомнения, что они перезагружали.

Надіслати
Поділитися на інших сайтах


  • 1 month later...

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

"я изначально поставил не тот модуль. там их два: php5-memcached и php5-memcache. поставил memcached, а надо было memcache."

Подскажите, если ставится php5-memcache, то в всех файлах надо заменить memcached на memcache?

Я как бы заменил и никаких ошибок не выдало.

И как убедится, что работает? Оперативную память VPS сервер вместе с операционкой кушает где-то 350Мб в среднем. Хотя база данных весит 100Мб (распакованная).

Надіслати
Поділитися на інших сайтах


  • 4 months later...
  • 7 months later...

Установил в config.php 

define('DB_DRIVER', 'mysql_cached');    

 

В результате вместо сайта ошибка 

Fatal error: Class 'DBmysql_cached' not found in /vqmod/vqcache/vq2-system_library_db.php on line 13

Кто-нибудь сталкивался с такой ошибкой? 

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

а эт вы, видимо, уже меняли загрузчик драйверов БД.

возможно, для перехода на mysqli.

Честно говоря - не могу сказать точно, т.к. сайт достался "в наследство" уже в таком виде после каких-то горе-оптимизаторов не обезображенных здравым смыслом, пытавшихся по очереди "оптимизировать сайт" на VDS с конфигурацией "из коробки".

В vqmod классы (в vq2-system_library_db.php)  искались исключительно в виде DB***** . Должно ли так быть или это следствие каких-то экспериментов - сказать не могу.

Вобщем, главное что вопрос решен успешно и после комплекса мероприятий сайт работает в разы шустрее не убивая при этом сервер. :) 

Автору скриптов - огромное человеческое спасибо! 

Надіслати
Поділитися на інших сайтах


UPD. 

Кстати, в первом сообщении заменить бы фрагмент

2. Сделал вариант драйвера БД mysql_cached, в котором кэшируются запросы SQL. Время кэширования настривается через config.php:
define('DB_CACHED_EXPIRE', 120);

 

На

2. Сделал вариант драйвера БД mysql_cached, в котором кэшируются запросы SQL. Время кэширования настривается через config.php:
define('DB_CACHED_EXPIRE', 120);
define('DB_DRIVER', 'mysql_cached');

А то неполная получается информация о настройке. 

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.