18

I want to run multiple instance of Redis on Centos 7. Can anyone point me to proper link or post steps here.

I googled for the information but I didn't find any relevant information.

Ashish Sinha
  • 194
  • 1
  • 1
  • 10

2 Answers2

43

You can run multiple instances of Redis using different ports on a single machine. If this what concerns you then you can follow the below steps.

By installing the first Redis instance, it listens on localhost:6379 by default.

For Second Instance create a new working directory

The default Redis instance uses /var/lib/redis as its working directory, dumped memory content is saved under this directory with name dump.rdb if you did not change it. To avoid runtime conflicts, we need to create a new working directory.

mkdir -p /var/lib/redis2/
chown redis /var/lib/redis2/
chgrp redis /var/lib/redis2/

Generate configurations

Create a new configuration file by copying /etc/redis/redis.conf

cp /etc/redis/redis.conf /etc/redis/redis2.conf
chown redis /etc/redis/redis2.conf

Edit following settings to avoid conflicts

logfile "/var/log/redis/redis2.log"
dir "/var/lib/redis2"
pidfile "/var/run/redis/redis2.pid"
port 6380

Create service file

cp /usr/lib/systemd/system/redis.service /usr/lib/systemd/system/redis2.service

Modify the settings under Service section

[Service]
ExecStart=/usr/bin/redis-server /etc/redis/redis2.conf --daemonize no
ExecStop=/usr/bin/redis-shutdown redis2

Set to start with boot

systemctl enable redis2

Start 2nd Redis

service redis2 start

Check Status

lsof -i:6379
lsof -i:6380

By Following this you can start two Redis servers. If you want more repeat the steps again.

Pallav Jha
  • 3,409
  • 3
  • 29
  • 52
Selva Kumar
  • 839
  • 1
  • 10
  • 15
  • Thanks a lot this helps – Ashish Sinha Sep 07 '16 at 14:51
  • I have one more question. In section "Edit following settings to avoid conflicts" last line "add startup script". What does that mean? – Ashish Sinha Sep 07 '16 at 15:01
  • When i run "service redis-6379 start" I get following message Redirecting to /bin/systemctl start redis-6380.service ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === Authentication is required to manage system services or units. Authenticating as: Ashish K (ashish) Password: XXX But redis server process is not there – Ashish Sinha Sep 07 '16 at 18:04
  • Edit following settings to avoid conflicts means you need to set the separate log file,pid file ,datadir to new redis instance – Selva Kumar Sep 08 '16 at 04:34
  • Sorry for the inconvenience Please don't consider '**add startup script**' I wrongly mentioned. – Selva Kumar Sep 08 '16 at 04:36
  • For your second question: You need to change all tings in redis2.conf file.Need to mention separate files to each instance – Selva Kumar Sep 08 '16 at 04:38
  • Note that to start Redis with systemd, I would use `systemctl start redis` and not the sysv command as shown. – Alexis Wilke Sep 30 '19 at 04:18
2

If I set to --daemonize no, Redis will crash when data insert.

ExecStart=/usr/bin/redis-server /etc/redis2.conf --daemonize no

Should change to

ExecStart=/usr/bin/redis-server /etc/redis2.conf --supervised systemd

My Redis is 5.0.7.

FYI.