В настоящее время я разрабатываю основу приложения и ищу способы оптимизировать производительность. Моя установка основана на структуре CakePHP , но я считаю, что мой вопрос актуален для любого технологического стека, поскольку он связан с кэшированием данных.
Давайте возьмем типичное отношение пост-автора, которое представлено как 2 таблицы в моей db. Когда я запрашиваю в базе данных конкретное сообщение в блоге, в то же время встроенная функция ORM в CakePHP также выбирает автора сообщения, комментарии к сообщению и т. Д. Все это возвращается как один большой вложенный массив , который я сохраняю в кеше с использованием уникального идентификатора для соответствующего сообщения в блоге.
При обновлении сообщения в блоге уничтожение кеша для сообщения и его восстановление с помощью следующего запроса - это детская игра.
Но что происходит, когда обновляется не основная сущность (в данном случае сообщение в блоге), а некоторые связанные данные? Например, комментарий может быть удален, или автор может обновить свой аватар. Существуют ли какие-либо подходы (шаблоны), которые я мог бы рассмотреть для отслеживания обновлений связанных данных и соответствующего применения обновлений к моему кешу?
Мне любопытно узнать, сталкивались ли вы также с аналогичными проблемами, и как вы справились чтобы потенциально преодолеть препятствие. Не стесняйтесь предлагать абстрактную перспективу, если вы используете другой стек на своей стороне. В любом случае ваши взгляды очень ценятся, большое спасибо!