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");
Тогда уж точно будет работать стабильно -- все ключи
гарантированно короткой длины.
--
С уважением,
Сергей Аверьянов
|