关于Redis Cluster集群搭建只能正常启动一个的问题
问题描述
通过启动文件启动redis cluster,但发现只有一个redis启动成功(第一个),通过查看进程发现只有一个对应的进程。
ps -ef|grep redis #查看redis进程
解决方案:
1、检测基本配置
注意配置不同的端口(port),防止端口冲突;要开启redis cluster集群(cluster-enabled yes);注释掉redis的密码设置(# requirepass)
# Redis服务器可以跨网络访问
bind 0.0.0.0
# 修改端口号
port 7001
# Redis后台启动
daemonize yes
# 开启aof持久化
appendonly yes
# 开启集群
cluster-enabled yes
# 集群的配置 配置文件首次启动自动生成
cluster-config-file nodes-7001.conf
# 请求超时
cluster-node-timeout 5000
注释掉密码
# requirepass 123456
2、修改配置cluster-config-file
当集群启动起来会生成一个配置文件,文件名为cluster-config-file指定的名字,而文件的生成路径有一个默认的路径(我的在src目录下)。因此要注意如果实在同一个虚拟机搭建的redis cluster,那么如果cluster-config-file指定的都为同一个名字,那么就会造成冲突,此时只有第一个启动的redis cluster-config-file生成成功,这也就解释了为什么集群中只有第一个redis启动成功。因此最好在cluster-config-file指定文件名后面加上对应端口号。
cluster-config-file nodes-7001.conf
此时默认路径下的集群配置文件
3、修改配置pidfile
当Redis以守护进程方式运行时,Redis默认会把pid写入pidfile指定的路径中。为了防止冲突,可以将pidfile设定为不同的路径,或者设定为同一个路径但在文件名末尾加上对应的端口号即可。
pidfile "/var/run/redis_7001.pid"
启动成功!
技术小白,有错欢迎指出!