add key1 1 0 6 value1 STORED get key1 VALUE key1 0 6 value1 END |
$mem=new Memcache(); $mem->connect("192.168.15.178",1978); $mem->add("key2","value2"); print_r( $mem->get("key2")); echo "<hr>"; $mem->add("key3",array("value3"=>"this is value3")); print_r($mem->get("key3")); ?> |
| value2 a:1:{s:6:"value3";s:14:"this is value3";} |
如果你熟悉memcache协议,或者你曾经用php的memcache来使用ttserver,你可能马上就发现了上面的问题。
通过上面的telnet示例我们可以看到,我们add key1的时候设置flag参数为1,但是我们get回来的时候,返回的flag参数是0,实际上,ttserver是没有存储flag参数的,统一的都使用0,这就造成了php使用时不会自动反序列化,当然,如果你使用压缩参数,一样会有这样的问题。
| //使用ttserver自增 $mem=new Memcache(); $mem->connect("192.168.15.178",1978); var_dump($mem->increment("incr")); //结果为int(1) ?> |
| //使用memcache自增 $mem=new Memcache(); $mem->connect("192.168.15.178",11211); var_dump($mem->increment("incr")); //结果为bool(false) ?> |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70000523/viewspace-3149403/ ,如需转载,请注明出处,否则将追究法律责任。