phpredis方法在不同版本使用的异常
2017-04-17 00:00
453 查看
摘要: zrevrank在不同的版本中出现不同的表现
问题:线上的phpredis有两个不同的版本,旧的phpredis2.2.5,新的phpredis3.1.2
在phpredis2.2.5中,php代码如下:
在redis-server中使用monitor进行监控,发现执行的命令如下所示:
从上面的分析中,可以看出,在phpredis2.2.5中,php调用phpredis的方法,无法传递的是double,float,string或者int,执行的命令是相同的。
在phpredis3.1.2中,php代码如下:
在redis-server中使用monitor进行监控,发现执行的命令如下所示:
从上面的分析可以看出,在phpredis3.1.2中,php调用phpredis的方法,传递的member成员如果是double,float是与int,string不相同的。
测试了phpredis的 string,list,set,hash,zset数据类型,发现set和zset存在这样的情况,而且是出现在key中的member中,具体的phpredis源码的实现导致这个问题,稍后会添加上来。
问题:线上的phpredis有两个不同的版本,旧的phpredis2.2.5,新的phpredis3.1.2
在phpredis2.2.5中,php代码如下:
<?php $redis = new Redis(); $redis->connect("127.0.0.1", 6379); $key = "abc"; $redis->zrevrank($key, (double)45555); $redis->zrevrank($key, (float)45555); $redis->zrevrank($key, 45555); $redis->zrevrank($key, 45555);
在redis-server中使用monitor进行监控,发现执行的命令如下所示:
"ZREVRANK" "abc" "45555" "ZREVRANK" "abc" "45555" "ZREVRANK" "abc" "45555" "ZREVRANK" "abc" "45555"
从上面的分析中,可以看出,在phpredis2.2.5中,php调用phpredis的方法,无法传递的是double,float,string或者int,执行的命令是相同的。
在phpredis3.1.2中,php代码如下:
<?php $redis = new Redis(); $redis->connect("127.0.0.1", 6379); $key = "abc"; $redis->zrevrank($key, (double)45555); $redis->zrevrank($key, (float)45555); $redis->zrevrank($key, 45555); $redis->zrevrank($key, 45555);
在redis-server中使用monitor进行监控,发现执行的命令如下所示:
"ZREVRANK" "abc" "4.5555e+4" "ZREVRANK" "abc" "4.5555e+4" "ZREVRANK" "abc" "45555" "ZREVRANK" "abc" "45555"
从上面的分析可以看出,在phpredis3.1.2中,php调用phpredis的方法,传递的member成员如果是double,float是与int,string不相同的。
测试了phpredis的 string,list,set,hash,zset数据类型,发现set和zset存在这样的情况,而且是出现在key中的member中,具体的phpredis源码的实现导致这个问题,稍后会添加上来。
相关文章推荐
- phpredis使用方法
- phpredis使用方法
- 使用Docker解决同一服务器运行不同版本PHP方案。
- ueditor PHP版本使用方法
- jedis,spring-redis-data 整合使用,版本问题异常以及解决。
- Thinkphp使用PDO方式连接MSSQL2000、sqlserver数据库的方法,PHP版本是PHP5.2
- phpredis中文手册(使用方法)——《redis中文手册》 php版
- try{}catch(){}//根据异常信息使用不同的方法要怎么实现
- ubuntu安装redis的方法以及PHP安装redis扩展、CI框架sess使用redis的方法
- php使用mysql数据库时中文不显示或显示异常解决方法
- php使用redis在windows下配置方法
- 64位Linux使用yum安装两个相同软件不同版本包的解决方法
- 本文实例讲述了php版本的cron定时任务执行器使用方法
- 使用yum更新php的版本方法
- PHP使用redis实现统计缓存mysql压力的方法
- php redis 的使用方法
- phpredis使用方法
- php的autoload大致可以使用两种方法:__autoload和spl方法。这两种方法又各有不同的几种使用方法
- Android不同版本的API方法使用和Android系统版本对应的API版本号
- PHP使用redis实现统计缓存mysql压力的方法