How to check whether the Redis server is running

How to check whether the Redis server is running?

If it's not running, I want to fallback to using the database.

I'm using the FuelPHP framework, so I'm open to a solution based on this, or just standard PHP.


Solution 1:

You can use command line to determine if redis is running:

redis-cli ping

you should get back

PONG

that indicates redis is up and running.

Solution 2:

What you can do is try to get an instance (\Redis::instance()) and work with it like this:

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

But preferably you'd know whether redis is running or not. This is just the way to detect it on the fly.

Solution 3:

redis-cli -h host_url -p 6379 ping

Solution 4:

you can do it by this way.

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

echo $redis->ping();

and then check if it print +PONG, which show redis-server is running.

Solution 5:

All answers are great,

aAnother way can be to check if default REDIS port is listening

i.e port number 6379 lsof -i:6379

if you don't get any output for above command then it implies redis is not running.