如何检查Redis服务器是否正在运行

Chr*_*son 24 php fuelphp

如何检查Redis服务器是否正在运行?

如果它没有运行,我想回退使用数据库.

我正在使用FuelPHP框架,所以我愿意接受基于此的解决方案,或者只是标准的PHP.

Has*_*imi 48

您可以使用命令行来确定redis是否正在运行:

redis-cli ping
Run Code Online (Sandbox Code Playgroud)

你应该回来

PONG
Run Code Online (Sandbox Code Playgroud)

表示redis已启动并正在运行.


小智 18

redis-cli -h host_url -p 6379 ping
Run Code Online (Sandbox Code Playgroud)


小智 11

所有答案都很棒,

a另一种方法是检查if default REDIS port is listening

即端口号6379 lsof -i:6379

如果上面的命令没有得到任何输出,那么这意味着 redis 没有运行。


Dav*_*ice 7

你可以在linux上使用这个命令:

\n
systemctl status redis-server\n
Run Code Online (Sandbox Code Playgroud)\n

它会给你这个输出:

\n
\n\xe2\x97\x8f redis-server.service - 高级键值存储\n已加载:已加载(/lib/systemd/system/redis-server.service;已禁用;供应商预设:已启用)\nActive:活动(正在运行) ) 自 2023 年 1 月 11 日星期三 19:14:30 UTC 起;1 天 4 小时前\n文档:http://redis.io/documentation,man:redis-server(1)\n主 PID:43270 (redis-server)\n状态:“准备接受连接”\n任务:5(限制: 477)\n内存: 18.5M\nCPU: 3min 34.450s\nCGroup: /system.slice/redis-server.service\n\xe2\x94\x94\xe2\x94\x8043270 "/usr/bin/redis-server 127.0.0.1:6379" "" "" "" "" "" "" ""\nJan 11 19:14:30 ip-172-31-17-230 systemd[1]: 正在启动高级键值存储.. .\n1 月 11 日 19:14:30 ip-172-31-17-230 systemd[1]: 启动高级键值存储。\n
\n


Fra*_*nge 5

您可以做的是尝试获取实例(\ Redis :: instance())并像这样使用它:

try
{
    $redis = \Redis::instance();
    // Do something with Redis.
}
catch(\RedisException $e)
{
    // Fall back to other db usage.
}
Run Code Online (Sandbox Code Playgroud)

但最好是您会知道Redis是否正在运行。这只是实时检测它的方法。


Yan*_*nn叶 5

你可以用这种方式做到。

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

echo $redis->ping();
Run Code Online (Sandbox Code Playgroud)

然后检查它是否打印+PONG,这表明 redis-server 正在运行。