Как мой список последних сообщений может узнать, были ли удалены, изменены или добавлены новые сообщения?
Проще говоря, они не могут - проблема с кэшированием заключается в том, что вы сознательно обслуживаете старые данные. Иногда это нормально, конечно.
Но вы можете сделать недействительными некоторые кэши. Таким образом, если вы переписываете один пост, вы должны сделать кеш для него недействительным, чтобы при следующем просмотре он снова кэшировался с новыми данными. Отдельные предметы, как это легко.
Но если у вас есть кеш, который содержит большой объем данных (скажем, кэшированные версии разбитого на страницы экрана, такие как Последние сообщения , по одному элементу кэша на страницу), то он часто слишком неудобен / медлен обновить одну строку таблицы в нем. Если это так, то может быть лучше обслуживать этот экран без кэширования. Но если «Последние сообщения» содержат только последние 10 элементов, аннулируйте весь кеш для этого и перерисовайте его.
Вы можете иметь кэшированную копию этой страницы, содержащую кэшированный элемент для каждой строки таблицы (то есть несколько кэшированных строк в большой кэшированной таблице); тем не менее, чем меньше ваша область кэша, тем меньше вы получаете выгоды. Но это, безусловно, облегчит недействительность только одной строки.