Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Управление кешом - фичареквест
Hello!
On Fri, Jul 26, 2013 at 11:53:33AM +0400, Dmitry E. Oboukhov wrote:
> поигрался немного с кешами.
>
> интересно, включаем кеш для location'а на скажем 0-30 минут и далее
> бакенд определяет что данную страницу надо закешировать на скажем 20
> секунд выдавая заголовок X-Accel-Expires: 20.
> это классная фича!
>
> но вот если посмотреть на любой сайт с кешированием, то можно увидеть
> что какую-то информацию мы можем выдать в кеш, но при этом кеш валиден
> будет *до определенного действия пользователя*.
>
> например (утопический пример) мы на сайте кешируем список
> пользователей написавших больше всего сообщений (ТОП по
> пользователям).
> понятное дело, такой ТОП меняется редко и можно смело ему выдать
> скажем 10 минут время жизни кеша и все будет хорошо.
> но допустим у нас задача есть чтобы этот ТОП выводился более
> качественно. становится ТОП'ом другой пользователь (входит в ТОП10) и
> сразу картинка перестраивается (без лага в 0-10 минут).
>
> для такой задачи просто определение времени жизни кеширования из
> бакенда не подойдет. еще нужно иметь возможность сказать что кеш
> невалиден nginx'у.
>
> и вот тут фичареквест добавить опцию (насколько я понимаю не должно
> быть сложным):
>
> у нас есть один хидер на управление кешом:
>
> X-Accel-Expires: [ секунд | @секунд ]
>
> - определяет сколько времени данная страница может находиться в кеше
>
> а можно сюда добавить еще хидер, например:
>
> X-Cache-Invalid: "/users/top/123?all=yes"
>
> - определяет что с данного момента определенный набор страниц
> находящихся в кеше (набор = если несколько таких заголовков выдали)
> невалиден.
>
> Тогда если бакенд выдал такой заголовок (или несколько таких
> заголовков), чтобы nginx по факту выдачи такого ответа сбросил кеши,
> связанные с данными урлами?
Помнится мне, когда-то давно Игорь писал в рассылку, что планирует
нечто подобное сделать. А сейчас даже есть draft RFC на
аналогичную тему, тут:
http://tools.ietf.org/html/draft-nottingham-linked-cache-inv-04
Я, правда, сомневаюсь, что draft взлетит, но вообще
функциональность, как мне кажется, интересная.
С точки зрения реализации в nginx'е есть, правда, один нюанс:
ключ кеширования может задаваться произвольно, и не так просто
вычислить, что именно нужно убрать из кеша.
--
Maxim Dounin
http://nginx.org/en/donation.html
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|