namespace-ы при использовании нескольких memcached-ов

Монашёв Михаил postmaster at softsearch.ru
Tue Feb 19 18:00:00 MSK 2008


Здравствуйте.

Столкнулись   с   проблемой   некорректного  отображения  ключиков  на
несколько  мемкашед-серверов при включённом балансере memcached_hash (
http://openhack.ru/nginx-patched/wiki/MemcachedHash ). Проблема в том,
что перловые модули Cache::Memcached и Cache::Memcached::Fast, которые
записывают ключики в мемкашед, при расчёте сервера используют ключ без
нэйспейса.  А  в  конфиге  nginx-а  можно  было  задать только ключик.
Поэтому нейспейс писался прямо в ключик:

set $memcached_key   "my-namespace$uri$is_args$args";

И это прекрасно работало, когда не было балансера (ибо nginx обходил
все мемкашед-сервера в поисках ключа).

Но  чтобы  корректно вычислить мемкашед-сервер нужен только ключик без
неймспейса.     По     этой    причине    мы    добавили    переменную
$memcached_namespace:

set $memcached_namespace "my-namespace";
set $memcached_key       "$uri$is_args$args";

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

Подробнее тут: http://openhack.ru/nginx-patched/wiki/MemcachedHash

-- 
С уважением,
Монашёв Михаил, SoftSearch.ru
mailto:postmaster at softsearch.ru
ICQ# 166233339
http://michael.mindmix.ru/
Без бэкапа по жизни.






More information about the nginx-ru mailing list