Tokyo Tyrant(TTServer)系列-memcache协议 [
2010-01-23 09:24
337 查看
通过memcache协议使用ttserver 通过telnet 127.0.0.1 1978 telnet连接到到我们第一节的启动实例。
以下我们通过add增加key为key1和value为value1的数据。
通过get key1获取数据,如果你看不明白,可以搜索
下memcache协议的东西看下。
通过php使用
运行后输出:
需要注意的问题序列化问题 如果你熟悉memcache协议,或者你曾经用php的memcache来使用ttserver,你可能马上就发现了上面的问题。
比如我们key3是一个数组,但是我们取回来的是一个序列化的字符串,没有自动反序列化,在memcached服务器上是会自动反序列化的。
通过上面的telnet示例我们可以看到,我们add key1的时候设置flag参数为1,但是我们get回来的时候,返回的flag参数是0,实际上,ttserver是没有存储
flag参数的,统一的都使用0,这就造成了php使用时不会自动反序列化,当然,如果你使用压缩
参数,一样会有这样的问题。
怎么样解决这个问题,如果要修改ttserver的代码实为不方便。我们完全可以在php,或者我们的客户端来控制。
比如value我们统一的都序列化后存储,取出来的时候我们再反序列化。
自增问题
我们看到同样的代码用在memcache返回了失败(false).我们可以在php手册上看到这样一句话“Memcache::increment()
does not
create an item if it didn't exist.”但是同样的,用在ttserver上就是成功的。这一点要特别注意。
以下我们通过add增加key为key1和value为value1的数据。
通过get key1获取数据,如果你看不明白,可以搜索
下memcache协议的东西看下。
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";} |
比如我们key3是一个数组,但是我们取回来的是一个序列化的字符串,没有自动反序列化,在memcached服务器上是会自动反序列化的。
通过上面的telnet示例我们可以看到,我们add key1的时候设置flag参数为1,但是我们get回来的时候,返回的flag参数是0,实际上,ttserver是没有存储
flag参数的,统一的都使用0,这就造成了php使用时不会自动反序列化,当然,如果你使用压缩
参数,一样会有这样的问题。
怎么样解决这个问题,如果要修改ttserver的代码实为不方便。我们完全可以在php,或者我们的客户端来控制。
比如value我们统一的都序列化后存储,取出来的时候我们再反序列化。
自增问题
//使用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) ?> |
does not
create an item if it didn't exist.”但是同样的,用在ttserver上就是成功的。这一点要特别注意。
相关文章推荐
- Tokyo Tyrant(TTServer)系列-memcache协议
- Tokyo Tyrant(TTServer)系列(三)-Memcache协议
- Tokyo Tyrant(TTServer)系列(一)-介绍和安装
- Tokyo Tyrant(TTServer)系列-启动参数和配置
- Tokyo Tyrant(TTServer)系列-备份恢复和增加从库
- Tokyo Tyrant(TTServer)系列(二)-启动参数和配置
- Tokyo Tyrant(TTServer)系列-启动参数和配置
- Tokyo Tyrant(TTServer)系列-备份恢复和增加从库
- Tokyo Tyrant(TTServer)系列(三)-Memcache协议
- Tokyo Tyrant(TTServer)系列-介绍和安装
- Tokyo Tyrant(TTServer)系列(一)-介绍和安装
- Tokyo Tyrant(TTServer)系列-高可用性和高可靠性+nginx
- Tokyo Tyrant(TTServer)系列-启动参数和配置
- Tokyo Tyrant(TTServer)系列-数据压缩
- Tokyo Tyrant(TTServer)系列(五)-ttserver的几种部署方式
- Tokyo Tyrant(TTServer)系列-备份恢复和增加从库
- Tokyo Tyrant(TTServer)系列(六)-数据丢失谁的错
- Tokyo Tyrant(TTServer)系列(四)-tcrmgr远程管理与调试
- Tokyo Tyrant(TTServer)系列(六)-数据丢失谁的错
- Tokyo Tyrant(TTServer)系列-数据压缩