Redisサーバーが実行されているかどうかを確認するにはどうすればよいですか?
実行されていない場合は、データベースの使用にフォールバックしたいと思います。
私はFuelPHPフレームワークを使用しているので、これに基づくソリューション、または単なる標準のPHPを利用できます。
コマンドラインを使用して、redisが実行されているかどうかを確認できます。
redis-cli ping
あなたは戻る必要があります
PONG
これは、redisが稼働中であることを示します。
できることは、インスタンス(\ Redis :: instance())を取得して、次のように操作することです。
try
{
$redis = \Redis::instance();
// Do something with Redis.
}
catch(\RedisException $e)
{
// Fall back to other db usage.
}
ただし、redisが実行されているかどうかを知っていることが望ましいでしょう。これは、その場でそれを検出する方法にすぎません。
redis-cli -h host_url -p 6379 ping
あなたはこの方法でそれを行うことができます。
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
echo $redis->ping();
次に、それが印刷されるかどうかを確認します+PONG
。これは、redis-serverが実行されていることを示しています。
すべての答えは素晴らしいです、
a別の方法はチェックすることですif default REDIS port is listening
つまり、ポート番号6379
lsof -i:6379
上記のコマンドの出力が得られない場合は、redisが実行されていないことを意味します。
これは、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
}