2016-11-23 2 views
0

У нас есть база данных, которая регулярно обновляется. Я использую базу данных ehcache и mysql.Как синхронизировать кеш с базой данных?

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

  1. Как сохранить синхронизацию моей базы данных с кешем (кэш должен обновляться по мере обновления базы данных)?
  2. Как узнать, когда обновлена ​​база данных?
+1

- это база данных обновляется через одно приложение или другое приложение или непосредственно в базе данных? –

+0

, если это то же приложение, то вы знаете, когда база данных будет обновлена. –

+0

, но как мне синхронизировать мою базу данных с ehcache? –

ответ

2

Это классическая проблема, связанная с кешированием. Когда вы дублируете данные - в базе данных и в кеше - вы вводите проблемы согласованности.

ответ на этот вопрос.

Для 1 ответ зависит от того, насколько важно предотвращать подачу устаревших данных из кеша. В некоторых ситуациях это не проблема, и работа с коротким временем истечения времени решит ее. В других случаях вы должны иметь обновленные данные в кеше, и тогда вам нужно будет убедиться, что кэшированные записи недействительны.

Обратите внимание, что делать это в полностью безопасном режиме сложно, поэтому Hibernate has so many second level cache strategies, безопаснее и безопаснее, но медленнее и медленнее.

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

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