PHP 中使用

connect

pconnect

连接

Redis

,在手动

close

后,为什么都无法关闭连接?

在手动

close

后,仍然可以使用

Redis

实例操作

Redis

,请问这是什么原因?

网上的文章,例如:

http://starsea.github.io/post…

https://blog.csdn.net/qmhball…

等等文章,都说在

close

后,继续操作

redis

就会报错,

但是我自己测试后发现

无论是在

Windows

的环境下,还是

Linux

的环境下,手动

close

后仍然可以继续使用

Redis

的实例,操作数据。

例如类似如下代码:

网上的文章,运行后会进入

catch

中,但是我的环境能够正常输出,不会进入

catch

<?php

$rds = new Redis();

try {

$ret = $rds->pconnect("127.0.0.1", 6379);

if ($ret == false) {

echo "Connect return false";

exit;

}

var_dump($rds->get('k1'));

$rds->close();

var_dump($rds->get("k2"));

} catch (Exception $e) {

var_dump ($e);

}

在我的环境中运行上面的 php 文件,会输出如下图中的结果:

bVbvId4?w=420&h=120

请问这是什么原因?怎么解释?

我在 Laravel 5.6 的框架中也测试了,结果也是同样的。

我的

Redis

版本是

4.0.11

bVbvJvo?w=544&h=253

我的

php-redis

扩展的版本是

4.2.0

bVbvJva?w=448&h=116

之后把扩展升级到了最新版

5.0.2

,结果还是一样,不会进入

catch

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐