服务器使用 WordPress备份脚本 类似方案进行的备份,今天收到某台服务器磁盘容量报警,经排查是某个插件产生大量无用redis数据,导致redis数据库大小急剧膨胀造成。由于配置错误,无效数据使用的redis数据库和另一个应用相同,于是研究了 redis批量删除key 方法。问题解决后,计划让应用使用单独redis实例,因此需要运行多个redis实例。

本文介绍CentOS系统运行多个redis实例的配置方法。

CentOS系统运行多个redis实例

本文方法在CentOS 7/8系统上测试通过,理论上也适用于使用systemd管理的Ubuntu 16/18等系统。

运行多个redis实例的配置步骤如下:

1. 创建redis运行时文件夹。redis默认实例的数据dump文件夹是 /var/lib/redis,我们创建一个新的文件夹给新实例使用:

mkdir /var/lib/redis2
chown redis:redis /var/lib/redis2

2. 创建新实例的运行配置。首先我们从默认实例复制一份配置文件:

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

然后编辑该配置文件,修改如下内容:

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

其中端口号6380可以改成其他的。编辑完后保存。

3. 创建redis新实例的systemd管理文件。首先复制原来的配置:

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

然后做如下修改:

ExecStart=/usr/bin/redis-server /etc/redis2.conf --supervised systemd
ExecStop=/usr/libexec/redis-shutdown redis2
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis2

4. 启动redis新实例:

systemctl enable redis2
systemctl start redis2

5. 使用ss命令查看端口是否被监听:

ss -ntlp | grep redis

输出结果应该是有两个redis实例在运行。

参考

1. How To Install Redis and Configure Multiple Redis Server on Centos 7