2014-02-11 6 views
1

Я не нашел хорошего предложения о том, как синхронизировать базу данных и memcache. Я использую MySQL 5.5.28, Zope 2.12.19 в своем веб-приложении.Синхронизация memcache и MySQL

Итак, некоторые из предложений похожи, как только вы сделаете выбор из memcache (во время попадания в кеш), он отправляет данные из кеша. После того, как этот кеш недействителен и данные снова будут выбраны из базы данных для повторного заполнения кэша. Но только потому, что операции с базой данных дороги, мы решили использовать кеш в первую очередь. Итак, как это решает проблему более быстрого доступа?

Другим решением является обновление memcache с использованием триггеров в исходной таблице. Любые материалы по этому поводу будут оценены, поскольку я не понимаю, как это делается.

ответ

1

Ниже приведены ссылки на лучшие решения, которые я мог бы найти по вышеуказанным вопросам.

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

Операции INSERT, UPDATE или DELETE будут вызывать триггеры, которые могут привести к недействительности кеша. И когда страница будет загружена, будет использоваться SELECT, и результирующие данные будут сохранены в кеше до тех пор, пока они не будут изменены снова. Таким образом, код приложения не нужно изменять во всей системе, используя триггеры для INSERT, UPDATE, DELETE в соответствующих таблицах. В коде должен обрабатываться только SELECT.

Что касается моего второго вопроса о том, как использовать триггеры для управления кэшем, ссылка ниже была extemely полезна в ответ на мой вопрос:

http://code.openark.org/blog/mysql/using-memcached-functions-for-mysql-an-automated-alternative-to-query-cache.

Смежные вопросы