说明:
常用的是3台master+3台slave架构(1个master+1个slave为一组):
3台master主机:用于写入数据,会定期将数据复制给各自的slave。
3台slave主机:用于读取数据。
master1主机IP:192.168.233.133
master2主机IP:192.168.233.136
master3主机IP:192.168.233.137
slave1主机IP:192.168.233.138
slave2主机IP:192.168.233.139
slave3主机IP:192.168.233.140
一、安装/配置6台Redis主机(redis端口都为6379):
1.安装redis,配为开机启动(第一、二、三章,先不要启动):
https://blog.csdn.net/a526001650a/article/details/103731467
2.配置集群信息(cd /usr/local/redis/,vi 6379.conf):
cluster-enabled yes #打开集群
cluster-config-file nodes-6379.conf #集群中单个节点的配置文件,此处配置后系统会自动管理
cluster-node-timeout 5000 #master节点超时时间,超时后主备切换
appendonly yes #开启AOF
3.删除.rdb和.aof数据文件(cd /usr/local/redis/work):
[root@www work]# rm -rf *.rdb *.aof
4.执行脚本启动redis(cd到/etc/init.d目录):
[root@localhost init.d]# ./redis_init_script start
二、搭建集群(在任意一台Redis主机上操作):
1.将redis-cli复制到redis目录(cd /root/redis-5.0.8/src/):
[root@localhost src]# cp redis-cli /usr/local/redis/redis-cli -r
2.创建集群:
(1)使用redis-cli命令创建集群(cd /usr/local/redis/):
#-a设置redis节点登录密码,尾部1表示每台master有1台slave
[root@localhost redis]# ./redis-cli -a yyh12345 --cluster create 192.168.233.133:6379 192.168.233.134:6379 192.168.233.135:6379 192.168.233.136:6379 192.168.233.137:6379 192.168.233.138:6379 --cluster-replicas 1
(2)显示如下信息,输入yes确认创建集群:
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.233.139:6379 to 192.168.233.133:6379
Adding replica 192.168.233.140:6379 to 192.168.233.136:6379
Adding replica 192.168.233.138:6379 to 192.168.233.137:6379
M: a076b08680119b937355b67f2aa6e0b8fc20787b 192.168.233.133:6379
slots:[0-5460] (5461 slots) master
M: 8f65e826acd3168a286aa47a6146033c3ede0734 192.168.233.136:6379
slots:[5461-10922] (5462 slots) master
M: ae08a171a43e7cbe0d3869a1fe0df410b714090c 192.168.233.137:6379
slots:[10923-16383] (5461 slots) master
S: e65f3f795aaeea68c9d6b79adc8086015bd22072 192.168.233.138:6379
replicates ae08a171a43e7cbe0d3869a1fe0df410b714090c
S: fcfc7950076e34700bda4fa0047eeb4662746e71 192.168.233.139:6379
replicates a076b08680119b937355b67f2aa6e0b8fc20787b
S: 78182a131c127d5016f49b6517199a80f2f57ebf 192.168.233.140:6379
replicates 8f65e826acd3168a286aa47a6146033c3ede0734
Can I set the above configuration? (type 'yes' to accept):
成功显示信息:
>>> 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.233.133:6379)
M: a076b08680119b937355b67f2aa6e0b8fc20787b 192.168.233.133:6379
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: e65f3f795aaeea68c9d6b79adc8086015bd22072 192.168.233.138:6379
slots: (0 slots) slave
replicates ae08a171a43e7cbe0d3869a1fe0df410b714090c
S: fcfc7950076e34700bda4fa0047eeb4662746e71 192.168.233.139:6379
slots: (0 slots) slave
replicates a076b08680119b937355b67f2aa6e0b8fc20787b
M: ae08a171a43e7cbe0d3869a1fe0df410b714090c 192.168.233.137:6379
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
S: 78182a131c127d5016f49b6517199a80f2f57ebf 192.168.233.140:6379
slots: (0 slots) slave
replicates 8f65e826acd3168a286aa47a6146033c3ede0734
M: 8f65e826acd3168a286aa47a6146033c3ede0734 192.168.233.136:6379
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
3.检查集群信息(任选一台):
[root@localhost redis]# ./redis-cli -a yyh12345 --cluster check 192.168.233.133:6379
三、连接Redis集群:
1.连接133节点(cd /usr/local/redis)(连接任意一个即可):
#加上-c才能get到其他节点的key
[root@www redis]# ./redis-cli -a yyh12345 -h 192.168.233.133 -p 6379 -c
2.查看集群相关信息:
#查看集群信息
192.168.233.133:6379> cluster info
#查看节点信息
192.168.233.133:6379> cluster nodes