У меня есть результат очень дорогого запроса. Это объединение нескольких таблиц и работа по уменьшению карты.
Кэшируется в memcached
на 15 минут. По истечении срока действия кеша запросы, очевидно, выполняются, и кеш снова нагревается.
Но в момент истечения срока действияпроблема громоподобного стада
может произойти проблема.
Один из способов решить эту проблему, который я использую прямо сейчас, — запустить запланированное задание, которое запускается на 14-й минуте. Но почему-то мне это кажется очень неоптимальным.
Другой подход, который мне нравится, этообновление nginx proxy_cache_use_stale;
механизм.
Веб-сервер/компьютер продолжает доставлять устаревший кеш, в то время как поток активируется в момент истечения срока действия и обновляет кеш.
Кто-нибудь применил это к сценарию memcached
, хотя я понимаю, что это стратегия на стороне клиента?
Если это выгодно, я используюDjango
.