2015-11-18 2 views
4

Я создаю сайт на основе базы данных MySQL. На веб-сайте будет много таблиц, много строк и много просмотров. Я знаю, потому что я создаю новую систему для существующего веб-сайта.В каких случаях следует использовать кеширование?

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

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

Я должен кэшировать:

  • все?
  • Большие/маленькие столы?
  • Все данные/только его часть?

Как использовать кеширование?

  • Хранить все данные в MySQL и кэшировать только некоторые записи? (пример: последние статьи)
  • Хранить некоторые данные только на Redis? (пример: просмотр статей/таблица IP-адресов)

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

ответ

0

Я использую apache-ignite как кэш, где храню только самые доступные данные, такие как объекты отчетности, в вашем случае могут быть недавно добавленные статьи (вам нужно принять это решение).

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

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

Ignite also provides an ORM инструмент, который используется для соединения с воспламенением базы данных, и это можно настроить двумя способами: немедленно обновить базу данных, если кэш будет изменен или когда он решит это сделать.

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