Comments 22
А где конкретные цифры ?
0
Смесь бояна с велосипедом.
Да и вообще кэшировать данные в файлах чтобы (как я понял) полегчало мускулю - это как-то странно.
Да и вообще кэшировать данные в файлах чтобы (как я понял) полегчало мускулю - это как-то странно.
0
Меняли тип кэшировния не с целью разгрузить базу, а с целью упорядочить кэширование. База разгрузилась как следствие, чему были очень рады.
0
Не странно в некоторых случаях. Например нет никаких причин нагружать БД теми-же результатами поиска или облаком тегов, не говоря уже о полностью или частично сгенеренных страницах.
+1
Было бы неплохо указать, какие запросы делали нагрузку и как они были закешированы
0
В основном проблема была с почтой - на каждой странице нужно было выводить, сколько есть новых сообщений, сколько всего, тип нового сообщения. Таблица сообщений была громадная (около 5 гб). Были созданны файлы для каждого пользователя, в которых содержалась эта выборка, они изменялись синхронно с изменением в базе, и из них тянули информацию.
После разбиения на несколько таблиц эту одну супер табкицу, нагрузка немного ушла. После установки memcached нагрузка исчезла вообще.
После разбиения на несколько таблиц эту одну супер табкицу, нагрузка немного ушла. После установки memcached нагрузка исчезла вообще.
0
UFO just landed and posted this here
Со своей дилетантской колокольни, я думаю, что memcached это не панацея. Поправьте ежели что.
0
2yurka:
чтобы еще разгрузить БД попробуйте хотя бы ADOBD (он умеет кэшировать результаты запросов в memcached).. для средних проектов - самое то ;)
с версии 4.92 29 ADODB умеет работать с memcached
чтобы еще разгрузить БД попробуйте хотя бы ADOBD (он умеет кэшировать результаты запросов в memcached).. для средних проектов - самое то ;)
с версии 4.92 29 ADODB умеет работать с memcached
+1
> срок хранения данных в кеше - неделя
вот это довольно спорно. Срок хранения должен зависеть от природы данных. Скажем совсем статичные данные(конфиги скажем) можно кешировать и на месяц, а инфорация которая изменяется(тоже количество сообщений) нужно кешировать осторожно и обновлять кеш при изменении данных.
вот это довольно спорно. Срок хранения должен зависеть от природы данных. Скажем совсем статичные данные(конфиги скажем) можно кешировать и на месяц, а инфорация которая изменяется(тоже количество сообщений) нужно кешировать осторожно и обновлять кеш при изменении данных.
+2
Согласен с вами. Поэтому сейчас мы вносим в кэш данные на неделю в том случае, если они не изменяются. При любом изменении данных пользователя, кэш данного пользователя обнуляется. Сначала пытались изменять кэш "на лету", но как вы и написали, это вызывало кучу неточностей в кэше.
Спасибо, что подтвердили мои мысли, теперь я более уверен в последних изменениях.
UPD - нагрузка, и при варианте изменений "на лету", и при обнулении кэша, гораздо ниже, чем при файловом кэшировании, и практически не ощутима.
Спасибо, что подтвердили мои мысли, теперь я более уверен в последних изменениях.
UPD - нагрузка, и при варианте изменений "на лету", и при обнулении кэша, гораздо ниже, чем при файловом кэшировании, и практически не ощутима.
0
когда кэш 400M и хранится на той же машине, это хорошо. А когда он начнет разрастаться на несколько серверов, то всё будет не столь однозначно.
+1
В данном случае подразумевается рост посещаемости/нагрузки на основной сервер ? В таком случае уже надо будет искать другие пути решения - выделения серверов для memcached, бд, apache например. Тогда уже будут и другие решения, не знаю, не сталкивался, но после первого знакомства с memcached, мне не кажется, что именно он будет делать особые проблемы...
0
400 Mb под memcached - это замечательно. Но если посмотреть документацию, то выясним, что memcached не гарантирует, что запрашиваемая страница хранится в кэше.
0
при чем здесь? memcached это просто хранилище данных в RAM, а что туда класть - ваше личное дело.
0
Я говорю о том, что memcached действительно дает огромный выигрыш в скорости, но при этом, как хранилище данных, memcached абсолютно не надежен. Очень неприятная ситуация, когда вы положили данные в кэш, и затем пытаетесь обратиться к этим данным, а их уже нет - данные потеряны. Причем я говорю опираясь на опыт применения memcached в реальных проектах - мы сталкнулись с проблемой потери данных. И решить эту проблему не получилось - memcached не гарантирует что данные не будут потеряны. Нам пришлось отказаться от использования memcached и хранить кэш данных в БД под управлением Oracle.
0
Sign up to leave a comment.
PHP: Изменение файлового кеширования на memcached — впечатления