Избегая нагромождения собак или громоподобного стада в memcached сценарий истечения срока действия

У меня есть результат очень дорогого запроса. Это объединение нескольких таблиц и работа по уменьшению карты.

Кэшируется в memcachedна 15 минут. По истечении срока действия кеша запросы, очевидно, выполняются, и кеш снова нагревается.

Но в момент истечения срока действияпроблема громоподобного стадаможет произойти проблема.

Один из способов решить эту проблему, который я использую прямо сейчас, — запустить запланированное задание, которое запускается на 14-й минуте. Но почему-то мне это кажется очень неоптимальным.

Другой подход, который мне нравится, этообновление nginx proxy_cache_use_stale;механизм.

Веб-сервер/компьютер продолжает доставлять устаревший кеш, в то время как поток активируется в момент истечения срока действия и обновляет кеш.

Кто-нибудь применил это к сценарию memcached, хотя я понимаю, что это стратегия на стороне клиента?

Если это выгодно, я используюDjango.

7
задан Quintin Par 25 March 2012 в 07:25
поделиться