在Centos上运行多个Redis实例

18

我希望在Centos 7上运行多个Redis实例。 有人能给我提供正确的链接或者在这里发布步骤吗。

我已经在Google上搜索了相关信息,但并没有找到任何相关信息。


可能是重复的问题:如何在单个服务器上的不同端口上运行redis? - Dirk Eddelbuettel
我的问题不是重复的。 - Ashish Sinha
2个回答

43

在单台机器上使用不同的端口可以运行多个Redis实例。如果这是您所担心的,那么您可以按照以下步骤操作。

通过安装第一个Redis实例,默认情况下它将在 localhost:6379 上监听。

对于第二个实例,请创建一个新的工作目录

默认的Redis实例使用 /var/lib/redis 作为其工作目录,并将转储的内存内容保存在该目录下的名称为 dump.rdb 的文件中(如果您没有更改)。为避免运行时冲突,我们需要创建一个新的工作目录。

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

生成配置

通过复制/etc/redis/redis.conf文件,创建一个新的配置文件。

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

编辑以下设置以避免冲突

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

创建服务文件

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

在服务部分修改设置

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

设置开机自启

systemctl enable redis2

启动第二个Redis

service redis2 start

查看状态

lsof -i:6379
lsof -i:6380

按照以下步骤可以启动两个Redis服务器。如果需要更多,再重复这些步骤。


非常感谢,这很有帮助。 - Ashish Sinha
我还有一个问题。在“编辑以下设置以避免冲突”部分的最后一行,“添加启动脚本”是什么意思? - Ashish Sinha
当我运行"service redis-6379 start"时,我会得到以下消息:重定向到/bin/systemctl start redis-6380.service ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === 需要进行身份验证以管理系统服务或单元。 身份验证为: Ashish K (ashish) 密码: XXX但是Redis服务器进程并不存在。 - Ashish Sinha
编辑以下设置以避免冲突意味着您需要将单独的日志文件、pid文件和datadir设置为新的redis实例。 - Selva Kumar
请注意,要使用systemd启动Redis,我会使用systemctl start redis而不是显示的sysv命令。 - Alexis Wilke
显示剩余2条评论

2
如果我设置为--daemonize no,当插入数据时Redis会崩溃。
应该更改为: ExecStart=/usr/bin/redis-server /etc/redis2.conf--supervised systemd 我的Redis版本是5.0.7。
供参考。

“--daemonize no” 如何改变方程式? - OAH
1
@OAH 你可以按照第一条评论逐步操作,然后使用 vi /usr/lib/systemd/system/redis2.service 命令来更改等式。 - Goodspeed Lam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接