Не автоматически, нет.
Все, что вы кэшируете, не изменится, пока не истечет срок его действия или пока вы не обновите его.Это своего рода точка кэша.Хитрость заключается в том, чтобы определить правильный срок действия и / или удалить / обновить кэш, когда что-то изменится, и вы хотите немедленно отразить это.
Допустим, у вас есть блог, и вам необходимо кэшировать первую страницу, потому что он получает очень много обращений, и каждый раз обращение к базе данных приводит к остановке сервера.Вы можете кэшировать страницу на неопределенный срок, просто всякий раз, когда вы создаете или редактируете сообщение в блоге, вы очищаете кэш, чтобы заставить его обновляться.
Или, скажем, вы отображаете список сообщений Twitter, которые постоянно обновляются,но вы не можете обновлять их каждый раз, потому что Twitter накладывает ограничения на частоту обновления.Здесь вы будете использовать ограниченный по времени кэш, скажем, 10 минут, прежде чем проверять наличие новых сообщений.
Или, скажем, чистая операция по извлечению некоторой информации из базы данных очень дорога, так что вы неЯ не хочу делать это каждый раз, но вам всегда нужны последние данные.В этом случае вы делаете небольшой недорогой запрос, чтобы выяснить, изменились ли данные с момента последнего кэширования (например, получить поле отметки времени modified
определенной записи), и на основе этой информации решить, следует ли запускатьболее дорогая операция или просто использовать кэшированные данные.
Конкретная стратегия зависит от вашей ситуации.