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 文件,会输出如下图中的结果:
请问这是什么原因?怎么解释?
我在 Laravel 5.6 的框架中也测试了,结果也是同样的。
我的 Redis
版本是 4.0.11
我的 php-redis
扩展的版本是 4.2.0
之后把扩展升级到了最新版 5.0.2
,结果还是一样,不会进入 catch
是不是安装的phpredis 的版本太低了? 尝试安装php的最新redis扩展。
https://github.com/phpredis/p...