ПРОЕКТЫ 


  АРХИВ 


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]

ngx_http_memcached_module + длинный ключ



Онаружилась интересная вещь: memcached (проверялось в 1.2.1 и 1.2.4 под 
FreeBSD 6.0) не сохраняет данные по некоторым ключам длиннее, чем 256 байт 

При включенном логе memcache видно вот что (ключ взят, что называется, "из 
головы"):
new client connection
>>set 
>>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>> 
0 3600 3
>>STORED
>>get 
>>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>>CLIENT_ERROR bad command line format
здесь видно, что от ключа при set-е отрезается конец.

Вопрос: как защититься от такой ситуции при использовании 
ngx_http_memcached_module c  Request-URI в качестве ключа (обязать uri быть 
короче 256 байт как то кисло...)? 

Так и тянет написать нечто вроде 
set             $memcached_key   md5("$uri");

Тогда уж точно будет работать стабильно -- все ключи 
гарантированно короткой длины.



-- 
С уважением,
  Сергей Аверьянов


 




Copyright © Lexa Software, 1996-2009.