在今天将官方的redis教程看完之后,想自己来一个测试。
按照官方给出的代码:
1 <?php 2 //连接本地的 Redis 服务 3 $redis = new Redis(); 4 $redis->connect('127.0.0.1', 6379); 5 echo "Connection to server sucessfully"; 6 //查看服务是否运行 7 echo "Server is running: "+ $redis->ping(); 8 ?>
执行的时候,报错:
A non-numeric value encountered
将$redis->ping()输出的时候,发现返回的是false;
然后看了一下一些博文以及论坛,发现有人说是php的redis拓展和服务器上面的版本不一致(的确,我的是windows系统,php版本是7所以下载的redis拓展是3.1.6,但是本地安装的redis版本确实2.4.5),咋一看,还真的是一回事。但是上去官方看了一下安装包,发现windows下, 我的这个2.4.5还是最新的。
折腾一阵子之后,发现不是这个问题。
然后就将错误的信息输出:
1 $redis = new Redis(); 2 $redis->connect('127.0.0.1', 6379); 3 echo "Connection to server sucessfully"; 4 //查看服务是否运行 5 try{ 6 $info = $redis->ping(); 7 var_dump($info); 8 }catch (Exception $e){ 9 var_dump($e->getMessage()); 10 }
发现出错的信息输出为:
Maximum execution time of 30 seconds exceeded
再将这个信息细读以及查看一些资料,发现这个可能是链接的时候时间超时:
参考博文:http://blog.csdn.net/ghostyusheng/article/details/50593565
采用第二种方法:
1 $redis = new Redis(); 2 set_time_limit(0); 3 $redis->connect('127.0.0.1', 6379); 4 echo "Connection to server sucessfully"; 5 //查看服务是否运行 6 try{ 7 $info = $redis->ping(); 8 var_dump($info); 9 }catch (Exception $e){ 10 var_dump($e->getMessage()); 11 }
发现这个时候的报错为:
error on connection
然后再查看一些资料,发现可能是内存的问题:
参考博文:https://www.cnblogs.com/krainbow/p/4261906.html
然后关掉本地的redis服务器,重新启动,输出成功!
PS:以上两篇博文没有在得到博主的允许下引用,如果有异议,希望可以联系本人,本人及时修改。
谢谢!多多指导!