通过Memcache协议使用ttserver

通过telnet 127.0.0.1 9032 telnet连接到到启动的实例。
下面我们通过add添加key为key1和value为value1的数据。
通过get key1获取数据。

(<key> <flags> <exptime> <bytes>)

add key1 1 0 6
value1
STORED
get key1
VALUE key1 0 6
value1
END

编写php脚本
$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");
?>
执行后输出:(在服务器上直接执行php脚本,假设在浏览器中訪问,效果就更加直观。

须要注意的问题

序列化问题

假设你熟悉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)
?>
我们看到相同的代码用在memcache返回了失败(false)。我们能够在php手冊上看到这样一句话“Memcache::increment() does not create an item if it didn't exist.”可是相同的,用在ttserver上就是成功的。这一点要特别注意。

Tokyo Tyrant(TTServer)系列(三)-Memcache协议相关推荐

  1. Tokyo Tyrant (ttserver)的master-slave复制协议分析

    Tokyo Tyrant (ttserver)的master-slave复制协议分析                                         The  replication ...

  2. 请注意Tokyo Tyrant (ttserver)在大数据量下的不稳定

    [文章作者:孙立 链接:http://www.cnblogs.com/sunli/ 更新时间:2010-06-20] ttserver不稳定案例 1. CMS a系统的文章采用了ttserver存储. ...

  3. BlockChain技术系列(三)- fabric协议介绍

    fabric的点对点(peer-to-peer)通信是建立在允许双向的基于流的消息gRPC上的.它使用Protocol Buffers来序列化peer之间传输的数据结构.Protocol buffer ...

  4. Tokyo Tyrant基本规范(4)--协议

    本节介绍Tokyo Tyrant的远程数据库API,Lua扩展和协议.部分细节内容没有翻译. 五. 远程数据库API 远程数据库是一组用于使用Tokyo Cabinet抽象数据库的接口,由Tokyo ...

  5. Tokyo Tyrant

    [文章作者:张宴 本文版本:v1.4 最后修改:2010.06.11 转载请注明原文链接: http://blog.s135.com/read.php/362/] Tokyo Cabinet 是日本人 ...

  6. Tokyo Cabinet及Tokyo Tyrant tcb tch比较分析

    TC(Tokyo Cabinet )是日本人 平林幹雄 开发的一款 Key-Value 键值数据库,该数据库读写非常快,哈希模式写入100万条数据只需0.402秒,读取100万条数据只需0.334秒. ...

  7. Tokyo Tyrant安装和配置

    Tokyo Tyrant安装和配置 Tokyo Cabinet是日本人开发的一款DBM数据库,读写速度非常快.Tokyo Tyrant也是由同一作者开发的Tokyo Cabinet网络接口,兼容mem ...

  8. Tokyo Tyrant基本规范(1)--介绍和安装

    Tokyo Tyrant基本规范,翻译自tt官网,地址. 本节介绍Tokyo Tyrant的基本知识和安装方法. 一.介绍 Tokyo Tyrant是名为Tokyo Cabinet的DBM的网络接口的 ...

  9. 后端如何发出请求_gRPC系列(三) 如何借助HTTP2实现传输

    本系列分为四大部分: gRPC系列(一) 什么是RPC? gRPC系列(二) 如何用Protobuf组织内容 gRPC系列(三) 如何借助HTTP2实现传输 gRPC系列(四) 框架如何赋能分布式系统 ...

最新文章

  1. 全球Top5互联网巨头崛起秘诀,真相竟然是?
  2. 第八期直播《立体视觉之立体匹配理论与实战》精彩回录
  3. 杀疯了!通过游戏“元宇宙”,Deepmind让AI学会玩各种没玩过的游戏,骚操作不断...
  4. Hystrix 熔断器01—— 概述 || Hystrix 重要概念
  5. final, finally, finalize 的区别
  6. SQLServer子查询相关知识笔记
  7. Ajax跨域请求解决方案——jsonp
  8. 生日快乐!中国航天员“天团”
  9. Windows 应用
  10. MasterPage简介
  11. hive collect_set mysql group_concat
  12. 瑟瑟发抖小网工之ISIS协议
  13. Docker--一门值得你学习的手艺
  14. Intel处理器家族及命名规则
  15. ENVI:标准库中光谱(.sli)重采样
  16. WHQL签名是什么?
  17. 【车牌识别】模板匹配车牌库识别【含GUI Matlab源码 416期】
  18. 【SAP】公司代码与采购组织的分配关系
  19. 华为云平台web架构部署
  20. python将dataframe导出为csv_Pandas DataFrame如何转换为CSV?详细操作————

热门文章

  1. IPMSG飞鸽传书——编译源代码的方法
  2. javascript中变量
  3. UIAlertController 简单修改title以及按钮的字体颜色
  4. Java troubleshooting guide
  5. 开源android豆瓣电影阅读器
  6. [计算数学基础]矩阵微分
  7. Ribbon For WPF的使用
  8. ASP.NET MVC2+MSSQL+Godaddy
  9. eclipse奇淫技巧 (转)
  10. Burrard 大桥