Memcached не хранит значение выше 100 байт должным образом - PullRequest
0 голосов
/ 01 ноября 2011

Я пытаюсь использовать memcached для кэширования данных пользователей.Но по какой-то причине значение (данные пользователя) превращается в странные символы всякий раз, когда размер значения становится больше или равен 100 байтам.

$m = new Memcached;
$m->addServer('127.0.0.1', 11211);

$m->set('key', array('abc' => 'xyz', 'password' => 'gautam', 'abc1' => 'xyz', 'password1' => 'g')); 
// The above works fine
// a:4:{s:3:"abc";s:3:"xyz";s:8:"password"; s:6:"gautam";s:4:"abc1";s:3:"xyz";s:9:"p assword1";s:1:"g";}

$m->set('key', array('abc' => 'xyz', 'password' => 'gautam', 'abc1' => 'xyz', 'password1' => 'g')); 
// Data becomes corrupt
// xœK´2±ª.¶2¶RJLJV²³**«@, 
+¥‚Äââòü¢×ÌJ) =±´$1Ä1«7DÕ`‰Ð

Может кто-нибудь помочь мне решить эту проблему.Я думаю, что значение memcached может быть до 1M.

Спасибо

Ответы [ 2 ]

1 голос
/ 02 ноября 2011

вам нужно проверить конфигурацию, попробуйте эту ссылку, чтобы получить параметры конфигурации memcached:

http://code.google.com/p/memcached/wiki/NewConfiguringServer

0 голосов
/ 22 апреля 2012

По крайней мере, с модулем PHP Memcached, они выполняют своего рода сжатие для значений более 100 байтов.Мой клиент Python этого не ожидал и сходит с ума всякий раз, когда я нажимаю более 100 буквенных строк.Это исправило это для меня:

$m->setOption(Memcached::OPT_COMPRESSION, false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...