Срок действия memcached с использованием прокси-сервера mysql при обновлении? - PullRequest
0 голосов
/ 08 октября 2010

У меня запущен MySQL Proxy, который принимает запрос, выполняет md5 и кэширует результат в базу данных memcached.проблема возникает, когда в приложении rails происходит обновление, которое делает этот кеш недействительным.Любые идеи о том, как аннулировать все надлежащие ключи в кеше в то время?

1 Ответ

0 голосов
/ 08 октября 2010

Суть проблемы в том, что вы не знаете, что это за ключ, так как он генерируется md5.

Однако вы можете решить проблему, не сохраняя данные для этого запроса.

Ваш запрос может выглядеть следующим образом: «ВЫБЕРИТЕ my_data. * ОТ my_data WHERE условия»

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

ВЫБРАТЬ my_data.id ОТ my_data ГДЕ условия

За которым следует

Memcache.mget (идентификаторы)

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

-

Другой вариант - изучить использование пространств имен: см. Здесь:

http://code.google.com/p/memcached/wiki/NewProgrammingTricks#Namespacing

Вы можете задать пространство имен всем основным запросам. Вы не сможете удалить ключи, но вы можете изменить идентификатор версии ключа, который фактически истечет ваши данные.

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

-

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

...