设为首页 收藏本站
查看: 1075|回复: 0

[经验分享] Tokyo Tyrant(TTServer)系列(三)-Memcache协议

[复制链接]

尚未签到

发表于 2015-11-18 12:46:22 | 显示全部楼层 |阅读模式
通过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编写php脚本$mem=new Memcache();
$mem->
connect(&quot;127.0.0.1&quot;,9032);
$mem->
add(&quot;key2&quot;,&quot;xifeijian&quot;);
print_r( $mem->
get(&quot;key2&quot;));
echo &quot;<br />&quot;;
$mem->
add(&quot;key3&quot;,array(&quot;value3&quot;=>&quot;this is xifeijian&quot;));
echo $mem->
get(&quot;key3&quot;);
?>运行后输出:(在服务器上直接执行php脚本,如果在浏览器中访问,效果就更加直观。) DSC0000.jpg
DSC0001.jpg
需要注意的问题
序列化问题
   如果你熟悉memcache协议,或者你曾经用php的memcache来使用ttserver,你可能马上就发现了上面的问题。
比如我们key3是一个数组,但是我们取回来的是一个序列化的字符串,没有自动反序列化,在memcached服务器上是会自动反序列化的。    通过上面的telnet示例我们可以看到,我们add key1的时候设置flag参数为1,但是我们get回来的时候,返回的flag参数是0,实际上,ttserver是没有存储flag参数的,统一的都使用0,这就造成了php使用时不会自动反序列化,当然,如果你使用压缩参数,一样会有这样的问题。
    怎么样解决这个问题,如果要修改ttserver的代码实为不方便。我们完全可以在php,或者我们的客户端来控制。比如value我们统一的都序列化后存储,取出来的时候我们再反序列化。自增问题
//使用ttserver自增
$mem=new Memcache();
$mem->
connect(&quot;127.0.0.1&quot;,9032);
var_dump($mem->
increment(&quot;incr&quot;));
//结果为int(1)
?>
//使用memcache自增
$mem=new Memcache();
$mem->
connect(&quot;127.0.0.1&quot;,9023);
var_dump($mem->
increment(&quot;incr&quot;));
//结果为bool(false)
?>我们看到同样的代码用在memcache返回了失败(false)。我们可以在php手册上看到这样一句话“Memcache::increment() does not create an item if it didn't exist.”但是同样的,用在ttserver上就是成功的。这一点要特别注意。
             版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-140710-1-1.html 上篇帖子: Memcache缓存框架 工作原理 下篇帖子: Memcache存储session,修改tomcat源码,实现全站二级域名session共享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表