Tokyo Tyrant(TTServer)系列(三)-Memcache协议
生活随笔
收集整理的这篇文章主要介绍了
Tokyo Tyrant(TTServer)系列(三)-Memcache协议
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
通过Memcache协议使用ttserver
通过telnet 127.0.0.1 9032 telnet连接到到启动的实例。下面我们通过add添加key为key1和value为value1的数据。通过get key1获取数据。(<key> <flags> <exptime> <bytes>)
| add key1 1 0 6value1STOREDget key1VALUE key1 0 6value1END |
| $mem=new Memcache(); $mem->connect("127.0.0.1",9032); $mem->add("key2","xifeijian"); print_r( $mem->get("key2")); echo "<br />"; $mem->add("key3",array("value3"=>"this is xifeijian")); echo $mem->get("key3"); ?> |
)
须要注意的问题
序列化问题
假设你熟悉memcache协议。或者你以前用php的memcache来使用ttserver。你可能立即就发现了上面的问题。
比方我们key3是一个数组,可是我们取回来的是一个序列化的字符串,没有自己主动反序列化,在memcached服务器上是会自己主动反序列化的。通过上面的telnet演示样例我们能够看到,我们add key1的时候设置flag參数为1,可是我们get回来的时候,返回的flag參数是0,实际上,ttserver是没有存储flag參数的。统一的都使用0,这就造成了php使用时不会自己主动反序列化,当然。假设你使用压缩參数,一样会有这种问题。
怎么样解决问题,假设要改动ttserver的代码实为不方便。我们全然能够在php。或者我们的client来控制。比方value我们统一的都序列化后存储,取出来的时候我们再反序列化。自增问题
| //使用ttserver自增 $mem=new Memcache(); $mem->connect("127.0.0.1",9032); var_dump($mem->increment("incr")); //结果为int(1) ? > |
| //使用memcache自增 $mem=new Memcache(); $mem->connect("127.0.0.1",9023); var_dump($mem->increment("incr")); //结果为bool(false) ?> |
总结
以上是生活随笔为你收集整理的Tokyo Tyrant(TTServer)系列(三)-Memcache协议的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 好东西,各城市域名解析测试及网速测试
- 下一篇: 使用AdMob实现广告统一