redis集群至少需要三个master节点,并且给每个master再搭建一个slave节点,总共6个redis节点,这里用1台机器部署6个redis实例,搭建集群的步骤如下:
一、在redis 目录 创建 redis-cluster 目录
cd /opt/redis-5.0.7;mkdir redis-cluster
cd redis-cluster
mkdir 8001 8002 8003 8004 8005 8006
复制 redis.conf配置文件到8001下
cp . 表示当前目录
cd 8001
cp ../../conf/redis.conf .
编辑 8001 目录的redis.conf 配置问题
# 后台运行
daemonize yes
# 端口
port 8001
#pidfile pid
pidfile /var/run/redis_8001.pid
# 数据存储位置 dir
dir /opt/redis-5.0.7/redis-cluster/8001/
#开启集群模式 cluster-enabled yes
cluster-enabled yes
# 集群配置信息cluster-config-file nodes-8001.conf
cluster-config-file nodes-8001.conf
#设置节点之前通信超时 配置 cluster-node-timeout 10000
cluster-node-timeout 10000
# bind 127.0.0.1 这个 设置绑定本机IP 或者 设置成 0.0.0.0
bind 0.0.0.0
#关闭保护模式 protected-mode no
protected-mode no
# 设置持久化模式
appendonly yes
# redis 登录密码 和集群节点密码(此步骤可以不设置,安全起见还是设置为好)
requirepass admin21262
masterauth admin21262
redis 的集群配置已经设置完成
将 8001 的 redis.conf 复制 到 8002…8006 修改其中的端口即可
vim 批量修改命令(vim命令模式 下操作) 将8001 全部改成 8002
:%s/8001/8002/g
二、启动所有redis 实例
进redis的 bin 目录;依次启动 6个redis实例
./redis-server ../redis-cluster/8001/redis.conf
启动完成 检查 redis 服务状态
ps -ef|grep redis
三、创建集群
进入 redis bin 目录
使用 redis-cli 创建集群
./redis-cli -a admin21262--cluster create --cluster-replicas 1 192.168.217.128:8001 192.168.217.128:8002 192.168.217.128:8003 192.168.217.128:8004 192.168.217.128:8005 192.168.217.128:8006
在 Can I set the above configuration? (type ‘yes’ to accept): yes
输入 yes
./redis-cli -a root --cluster create --cluster-replicas 1 192.168.217.128:8001 192.168.217.128:8002 192.168.217.128:8003 192.168.217.128:8004 192.168.217.128:8005 192.168.217.128:8006
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.217.128:8005 to 192.168.217.128:8001
Adding replica 192.168.217.128:8006 to 192.168.217.128:8002
Adding replica 192.168.217.128:8004 to 192.168.217.128:8003
M: 02d47d69650337ec4a967f5311718939c65d61ee 192.168.217.128:8001
slots:[0-5460] (5461 slots) master
M: 736fe6711ab1c1abfaace923fa553661bf956c37 192.168.217.128:8002
slots:[5461-10922] (5462 slots) master
M: 160224afce6c868c653d8e26e0cc5bdaf8da17be 192.168.217.128:8003
slots:[10923-16383] (5461 slots) master
S: 1e10e6ac6562918ee95480feb7a48e4679c3db62 192.168.217.128:8004
replicates 160224afce6c868c653d8e26e0cc5bdaf8da17be
S: 7952c769a0adb08753554e8767fdd415ed7a4e43 192.168.217.128:8005
replicates 02d47d69650337ec4a967f5311718939c65d61ee
S: 0f3e37ec085d26448898129af9388f1a74a2c19e 192.168.217.128:8006
replicates 736fe6711ab1c1abfaace923fa553661bf956c37
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
....
>>> Performing Cluster Check (using node 192.168.217.128:8001)
M: 02d47d69650337ec4a967f5311718939c65d61ee 192.168.217.128:8001
slots:[0-5460] (5461 slots) master
1 additional replica(s)
M: 160224afce6c868c653d8e26e0cc5bdaf8da17be 192.168.217.128:8003
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
S: 0f3e37ec085d26448898129af9388f1a74a2c19e 192.168.217.128:8006
slots: (0 slots) slave
replicates 736fe6711ab1c1abfaace923fa553661bf956c37
S: 1e10e6ac6562918ee95480feb7a48e4679c3db62 192.168.217.128:8004
slots: (0 slots) slave
replicates 160224afce6c868c653d8e26e0cc5bdaf8da17be
M: 736fe6711ab1c1abfaace923fa553661bf956c37 192.168.217.128:8002
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
S: 7952c769a0adb08753554e8767fdd415ed7a4e43 192.168.217.128:8005
slots: (0 slots) slave
replicates 02d47d69650337ec4a967f5311718939c65d61ee
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.