Memcached没有正确存储超过100字节的值

时间:2011-11-01 04:02:12

标签: php memcached

我正在尝试使用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 个答案:

答案 0 :(得分:1)

您需要检查配置,尝试使用此链接获取memcached的配置选项:

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

答案 1 :(得分:0)

至少在PHP Memcached模块中,它们对超过100字节的值进行某种压缩。我的Python客户端没有想到这一点,并且每当我点击100多个字母字符串时就会发疯。这为我解决了这个问题:

$m->setOption(Memcached::OPT_COMPRESSION, false);