如何检查 Redis 服务器是否正在运行?
如果它没有在运行,我想要回退到使用数据库。
我正在使用 FuelPHP 框架,因此我可以接受基于此的解决方案,也可以使用标准的 PHP。
你可以使用命令行来确定Redis是否正在运行:
redis-cli ping
你应该回来
PONG
这表示Redis正在运行。
redis-cli -h host_url -p 6379 ping
所有的回答都很好,
另一种方法可以是检查默认的REDIS端口是否正在监听
即端口号6379
lsof -i:6379
如果您对上述命令没有任何输出,则表示Redis未运行。
try
{
$redis = \Redis::instance();
// Do something with Redis.
}
catch(\RedisException $e)
{
// Fall back to other db usage.
}
最好能够知道redis是否正在运行。这只是在动态检测它的方法。
systemctl status redis-server
你可以通过以下方式完成这个任务。
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
echo $redis->ping();
然后检查是否打印出+PONG
,这表明redis-server正在运行。
这是给那些在运行 Node-Redis 的人。
const redis = require('redis');
const REDIS_PORT = process.env.REDIS_PORT || 6379
const client = redis.createClient(REDIS_PORT)
const connectRedis = async () => {
await client.PING().then(
async () => {
// what to run if the PING is successful, which also means the server is up.
console.log("server is running...")
},
async () => {
// what to run if the PING is unsuccessful, which also means the server is down.
console.log("server is not running, trying to connect...")
client.on('error', (err) => console.log('Redis Client Error', err));
await client.connect();
})
return
}
redis
参考文档redis-cli。 - Franco Gil