Использование триггеров MySQL в AWS для очистки кэша обновлений и вставок - PullRequest
6 голосов
/ 17 июня 2011

Я строю архитектуру на AWS с несколькими экземплярами EC2 в качестве веб-серверов и центральной базы данных MySQL (RDS). В экземплярах EC2 установлен Redis для кэширования отдельных строк БД. Когда в MySQL изменяется строка, я хочу, чтобы каждый экземпляр также обновлял соответствующие записи в кэше.

Каков наилучший способ сделать это в среде AWS?

Ответы [ 2 ]

5 голосов
/ 24 июня 2011

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

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

1 голос
/ 30 июня 2011

Если вы используете сервер очередей (amazon SQS, redis pubsub и т. Д.), Вы можете поместить запись в очередь для каждой записи, срок действия которой вы хотите, и иметь работника, который прослушивает очередь и когда он получает сообщение, чтобы сообщитьтот, чья запись аннулирует его, подключится к кешу и истечет срок действия этой записи.

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

...