如何检查Redis服务器是否正在运行?
如果它没有运行,我想回退使用数据库.
我正在使用FuelPHP框架,所以我愿意接受基于此的解决方案,或者只是标准的PHP.
Has*_*imi 48
您可以使用命令行来确定redis是否正在运行:
redis-cli ping
Run Code Online (Sandbox Code Playgroud)
你应该回来
PONG
Run Code Online (Sandbox Code Playgroud)
表示redis已启动并正在运行.
小智 11
所有答案都很棒,
a另一种方法是检查if default REDIS port is listening
即端口号6379
lsof -i:6379
如果上面的命令没有得到任何输出,那么这意味着 redis 没有运行。
你可以在linux上使用这个命令:
\nsystemctl status redis-server\nRun 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
您可以做的是尝试获取实例(\ 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是否正在运行。这只是实时检测它的方法。
你可以用这种方式做到。
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
echo $redis->ping();
Run Code Online (Sandbox Code Playgroud)
然后检查它是否打印+PONG,这表明 redis-server 正在运行。
| 归档时间: |
|
| 查看次数: |
25118 次 |
| 最近记录: |