Рассмотрите базовый метод кэширования: вы просматриваете ключ в кеше, если его нет, вы отправляете его из основного постоянного хранилища. Значение истекает, если кеш заполнен другими значениями или если TTL проходит.Имеет ли этот тип схемы кэширования имя?
Теперь рассмотрите небольшую альтернативную версию кеша: вы просматриваете ключ, если его нет, вам нужно его получить, ничего нового здесь. Но что, если вы просматриваете ключ, и значение истекло из-за TTL, но вместо этого вы возвращаете это устаревшее значение и асинхронно обновляете значение, чтобы следующий запрос уже видел новое значение (и TTL соответственно сброшен)?
Имеет ли эта схема кэширования имя? У нас есть какие-то недостатки, которые мы упускаем?
Это LRU с увеличенным сроком службы/ранним обновлением. (Вместо того, чтобы обновлять значение, когда TTL достигает 0, можно увидеть проблему как ввод записи с TTL + x вместо этого и обновление, когда TTL достигнет x, прежде чем окончательно исчезнет на 0.) – user611775