87

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.

Chris Harrison
  • 5,512
  • 3
  • 28
  • 36

6 Answers6

249

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.

Amir Hassan Azimi
  • 9,180
  • 5
  • 32
  • 43
15
redis-cli -h host_url -p 6379 ping
MonkeyDreamzzz
  • 3,978
  • 1
  • 39
  • 36
shubham goyal
  • 161
  • 1
  • 4
11

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.

Ankit Tiwari
  • 1,069
  • 10
  • 15
8

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.

Chris Harrison
  • 5,512
  • 3
  • 28
  • 36
Frank de Jonge
  • 1,607
  • 1
  • 15
  • 23
6

You can use this command on linux:

systemctl status redis-server

It will give you this output:

● redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2023-01-11 19:14:30 UTC; 1 day 4h ago
Docs: http://redis.io/documentation, man:redis-server(1)
Main PID: 43270 (redis-server)
Status: "Ready to accept connections"
Tasks: 5 (limit: 477)
Memory: 18.5M
CPU: 3min 34.450s
CGroup: /system.slice/redis-server.service
└─43270 "/usr/bin/redis-server 127.0.0.1:6379" "" "" "" "" "" "" ""
Jan 11 19:14:30 ip-172-31-17-230 systemd[1]: Starting Advanced key-value store...
Jan 11 19:14:30 ip-172-31-17-230 systemd[1]: Started Advanced key-value store.
Davide Radice
  • 143
  • 2
  • 4
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.

Yann叶
  • 185
  • 1
  • 3