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


How to check whether the Redis server is running

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

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

我使用的是FuelPHP框架,所以我对基于此的解决方案持开放态度,或者只是标准PHP。

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

redis-cli ping

你应该取回

PONG

这表明redis已经启动并运行。

redis-cli -h host_url -p 6379 ping

所有答案都很棒,

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

即端口号6379lsof -i:6379

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

您可以尝试获得一个实例(''Redis:instance())并像这样使用它:

try
{
    $redis = 'Redis::instance();
    // Do something with Redis.
}
catch('RedisException $e)
{
    // Fall back to other db usage.
}

但你最好知道redis是否在运行。这只是在飞行中发现它的方法。

您可以在linux上使用此命令:

systemctl status redis-server

它会给你这个输出:

●redis-server.service-高级键值存储已加载:已加载(/lib/systemd/system/redis-server.service;已禁用;供应商预设:已启用)活动:自2023-01-11星期三19:14:30 UTC起活动(运行);1天4小时前文档:http://redis.io/documentation,man:redis服务器(1)主PID:43270(redis服务器)状态:"准备接受连接"任务:5(限制:477)内存:185MCPU:3min34.450sC组:/system.slice/redis-server.service└─43270"/usr/bin/redis server 127.0.0.1:6379"""1月11日19:14:30 ip-172-31-17-230 systemd[1]:正在启动高级键值存储。。。1月11日19:14:30 ip-172-31-17-230 systemd[1]:开始高级键值存储。

您可以通过这种方式完成。

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

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