У меня есть прокси-сервер mysql, который принимает запрос, выполняет md5 на нем и кэширует результат в memcached DB. проблема возникает, когда в приложении rails происходит обновление, которое приведет к недействительности этого кеша. Любые идеи о том, как в то время лишить вас всех правильных ключей в кеше?Истекает memcached с использованием прокси-сервера mysql при обновлении?
ответ
Ядро проблемы, вы не знаете, что такое ключ, так как он генерируется md5.
Однако вы можете устранить проблему, не сохраняя данные для этого запроса.
Вы запрос может выглядеть следующим образом "SELECT my_data. * FROM my_data WHERE условия"
Однако, вы можете уменьшить redudeancy данных с помощью этого запроса вместо
ВЫБОР my_data.id ОТ my_data WHERE условия
который затем последовать
Memcache.mget (идентификаторы)
Это не будет запрещать возврат данных, которые больше не соответствуют условиям, но могут смягчать возврат устаревших данных.
-
Другой вариант посмотреть в использовании пространств имен: Смотрите здесь:
http://code.google.com/p/memcached/wiki/NewProgrammingTricks#Namespacing
Вы можете пространства имен всех ваших основных запросов. Вы не сможете удалить ключи, но вы можете изменить идентификатор ключа, который фактически истечет вашими данными.
Логично грязный, но вы можете использовать его по нескольким плохим запросам.
-
наконец, вы можете хранить эти запросы в другом сервере и кэша памяти флеш на более частой основе.
- 1. Тайм-аут истекает при обновлении nvarchar (max)
- 2. дублирует при обновлении MySQL
- 3. Планировщик MySQL при обновлении
- 4. Mysql ошибка при обновлении
- 5. Ошибка при обновлении записей с использованием JDBC
- 6. Обновление строки MySQL при обновлении с использованием другой таблицы
- 7. Проблемы с использованием псевдонимов при обновлении команды mysql
- 8. Ошибка при обновлении столбца в mysql с использованием python
- 9. дополнительные пробелы при обновлении базы данных mysql с использованием php
- 10. Python зависает при обновлении MySQL
- 11. Файл манифеста кэша не истекает JavaScript-файл при принудительном обновлении
- 12. Laravel CsrfToken истекает при обновлении после переключения серверов
- 13. Как реализовать memcached с использованием базы данных?
- 14. mysql - строка блокировки при обновлении
- 15. MySQL при повторном обновлении ключа
- 16. Изменение файла при обновлении mysql
- 17. MySQL Ошибка 1206 при обновлении
- 18. MySQL ошибка синтаксиса при обновлении
- 19. mysql check при обновлении строки
- 20. Ошибки при обновлении записи с дозвуковой (MySql)
- 21. Весенний кеш с использованием memcached
- 22. Mysql - гарантия истекает?
- 23. Azure mySQL Пароль Истекает
- 24. mysql вызывает проблемы при обновлении
- 25. эффективность MySql запросов при обновлении
- 26. MySQL MD5 (CURRENT_TIMESTAMP) При обновлении
- 27. MySQL - проблемы при обновлении таблицы
- 28. Memcached на сервере MySQL?
- 29. Mysql - результаты кэширования с использованием temp. Таблицы/PHP сценарии (? Memcached)
- 30. Исключение при обновлении с использованием EF 4.1
Я думаю, что пространства имен Memcahed - это путь к этому экземпляру, так как несколько дополнительных вызовов MYsql для извлечения последнего ключа лучше, чем запуск 20-секундного запроса mysql в процессе производства. – tesserakt