PHP使用网络端口连接到Redis服务。 RedisException:没有此类文件或目录。 我打开了另一个Redis,但是没有问题。
[root@iZwz96u12ozbs8aqnrwvo9Z Lib]# ps aux | grep redis
root 18378 0.1 0.8 163100 16204 ? Ssl 10:06 0:04 redis-5.0.5/src/redis-server 127.0.0.1:63306
root 22998 0.0 0.2 142952 5320 ? Ssl 11:16 0:00 redis-server 127.0.0.1:6379
root 23130 0.0 0.0 112704 976 pts/0 R+ 11:18 0:00 grep --color=auto redis
[root@iZwz96u12ozbs8aqnrwvo9Z Lib]# redis-cli -p 63306
127.0.0.1:63306> ping
PONG
127.0.0.1:63306> exit
[root@iZwz96u12ozbs8aqnrwvo9Z Lib]# redis-cli -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> exit
[root@iZwz96u12ozbs8aqnrwvo9Z Lib]# redis-server --version
Redis server v=3.2.12 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=7897e7d0e13773f
[root@iZwz96u12ozbs8aqnrwvo9Z Lib]# ../../redis/redis-5.0.5/src/redis-server --version
Redis server v=5.0.5 sha=c956f3fe:0 malloc=jemalloc-5.1.0 bits=64 build=d7a4b6366565957e
Redis在6379可以使用我的代码,而其他代码不起作用。
// is bad
try {
$this->redis = new Redis();
$this->redis->connect('127.0.0.1', 63306);
} catch (Exception $e) {
throw new Exception("Redis 连接失败_$e");
}
// is work
try {
$this->redis = new Redis();
$this->redis->connect('127.0.0.1', 6379);
} catch (Exception $e) {
throw new Exception("Redis 连接失败_$e");
}
正确的输出是:
{"code":0,"status":"成功","data":"xxxxxxxxxxxxxxxxxx"}
错误输出为:
PHP Fatal error: Uncaught Exception: Redis 连接失败_RedisException: No such file or directory in /usr/share/nginx/html/exbook/app/Lib/WeChat.php:23
Stack trace:
#0 /usr/share/nginx/html/exbook/app/Lib/WeChat.php(23): Redis->connect('127.0.0.1', 63306)
#1 /usr/share/nginx/html/exbook/app/Lib/WeChat.php(52): App\Lib\WeChat->__construct()
#2 /usr/share/nginx/html/exbook/app/Lib/WeChat.php(135): App\Lib\WeChat::getWeChat()
#3 {main} in /usr/share/nginx/html/exbook/app/Lib/WeChat.php:25
Stack trace:
#0 /usr/share/nginx/html/exbook/app/Lib/WeChat.php(52): App\Lib\WeChat->__construct()
#1 /usr/share/nginx/html/exbook/app/Lib/WeChat.php(135): App\Lib\WeChat::getWeChat()
#2 {main}
thrown in /usr/share/nginx/html/exbook/app/Lib/WeChat.php on line 25
答案 0 :(得分:0)
我通过更改端口号解决了这个问题。
在我的centos上,redis端口小于20000,可以与php一起使用。它将报告错误,端口号为20000-30000。但是任何可以使用的端口(例如63306)都可以在我的manjaro上与php一起使用。