ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
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


 




Copyright © Lexa Software, 1996-2009.