Redis集群

1.下载Redis安装包redis-5.0.5.tar.gz并放到/opt/目录下

2.所有Redis集群节点解压Redis安装包
tar -zxvf redis-5.0.5.tar.gz

3.所有Redis集群节点安装Redis
cd redis-5.0.5
make && make install

4.需要修改的配置参数
port 6379
bind 本机ip
daemonize yes
protected-mode yes
cluster-enabled yes
logfile ./redis-server.log
cluster-config-file nodes.conf
cluster-node-timeout 15000
appendonly yes
requirepass xxx (设置redis访问密码)
masterauth xxx (设置集群节点间访问密码,跟上面一致)
logfile "/opt/redis/redis-5.0.5/redis-server.log"
5.启动所有Redis节点

分别启动所有节点的redis
[root@tdh5 redis-5.0.5]# src/redis-server ./redis.conf
25453:C 30 Oct 2019 17:49:42.449 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
25453:C 30 Oct 2019 17:49:42.450 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=25453, just started
25453:C 30 Oct 2019 17:49:42.450 # Configuration loaded
[root@tdh5 redis-5.0.5]# ps -ef|grep redis-server
root 25454 1 0 17:49 ? 00:00:00 src/redis-server 10.11.220.5:6379 [cluster]
root 25525 8592 0 17:49 pts/0 00:00:00 grep --color=auto redis-server

[root@tdh4 redis-5.0.5]# src/redis-server ./redis.conf
1439:C 30 Oct 2019 17:50:17.521 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1439:C 30 Oct 2019 17:50:17.522 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=1439, just started
1439:C 30 Oct 2019 17:50:17.522 # Configuration loaded
[root@tdh4 redis-5.0.5]# ps -ef|grep redis-server
root 1440 1 0 17:50 ? 00:00:00 src/redis-server 10.11.220.4:6379 [cluster]
root 2036 23022 0 17:50 pts/8 00:00:00 grep --color=auto redis-server

[root@tdh3 redis-5.0.5]# src/redis-server ./redis.conf
22512:C 30 Oct 2019 17:43:28.906 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
22512:C 30 Oct 2019 17:43:28.906 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=22512, just started
22512:C 30 Oct 2019 17:43:28.906 # Configuration loaded
[root@tdh3 redis-5.0.5]# ps -ef|grep redis
root 22513 1 0 17:43 ? 00:00:00 src/redis-server 10.11.220.3:6379 [cluster]
root 22881 9423 0 17:43 pts/1 00:00:00 grep --color=auto redis

6.创建配置Redis集群
[root@tdh3 redis-5.0.5]# redis1=10.11.220.3
[root@tdh3 redis-5.0.5]# redis2=10.11.220.4
[root@tdh3 redis-5.0.5]# redis3=10.11.220.5
[root@tdh3 redis-5.0.5]# echo ${redis1}
10.11.220.3
[root@tdh3 redis-5.0.5]# echo ${redis2}
10.11.220.4
[root@tdh3 redis-5.0.5]# echo ${redis3}
10.11.220.5
如果需要配置密码:创建集群的时候可以指定面redis-cli --cluster create xxx:port xxx:port xxx:prot -a "password" --cluster-replicas 1
[root@tdh3 redis-5.0.5]# redis-cli --cluster create ${redis1}:6379 ${redis2}:6379 ${redis3}:6379
>>> Performing hash slots allocation on 3 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
M: 628eb99674e16f34ab0620c4d2a4d18a3d5d9b03 10.11.220.3:6379
slots:[0-5460] (5461 slots) master
M: 3e4327ae7e6e144a6b9369c579adbce9de68d600 10.11.220.4:6379
slots:[5461-10922] (5462 slots) master
M: c907ef24bee29ced9091afa1f2b1b6dd89de6cff 10.11.220.5:6379
slots:[10923-16383] (5461 slots) master
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 10.11.220.3:6379)
M: 628eb99674e16f34ab0620c4d2a4d18a3d5d9b03 10.11.220.3:6379
slots:[0-5460] (5461 slots) master
M: c907ef24bee29ced9091afa1f2b1b6dd89de6cff 10.11.220.5:6379
slots:[10923-16383] (5461 slots) master
M: 3e4327ae7e6e144a6b9369c579adbce9de68d600 10.11.220.4:6379
slots:[5461-10922] (5462 slots) master
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

[root@tdh4 redis-5.0.5]# src/redis-cli -h 10.11.220.3 -p 6379 -c -a XXXX
10.11.220.3:6379> SET myname transwarp
-> Redirected to slot [12807] located at 10.11.220.5:6379
OK
10.11.220.5:6379> GET myname
"transwarp"
关闭集群
只需要分别关闭各个Redis服务即可
./src/redis-cli -a xxxxxx shutdown

#查看redis-server的版本
redis-server --version
#查看redis-cli的版本
redis-cli --version
#10master 节点
[root@tdh3 redis-5.0.5]# ./src/redis-cli --cluster create ${redis1}:6379 ${redis2}:6379 ${redis3}:6379 ${redis4}:6379 ${redis5}:6379 ${redis6}:6379 ${redis7}:6379 ${redis8}:6379 ${redis9}:6379 ${redis10}:6379
>>> Performing hash slots allocation on 10 nodes...
Master[0] -> Slots 0 - 1637
Master[1] -> Slots 1638 - 3276
Master[2] -> Slots 3277 - 4914
Master[3] -> Slots 4915 - 6553
Master[4] -> Slots 6554 - 8191
Master[5] -> Slots 8192 - 9829
Master[6] -> Slots 9830 - 11468
Master[7] -> Slots 11469 - 13106
Master[8] -> Slots 13107 - 14745
Master[9] -> Slots 14746 - 16383
M: f98872ebbeee82185b2e62516ef5d301e92d25ff 10.11.220.3:6379
slots:[0-1637] (1638 slots) master
M: ed7989e22ab91d0066612c3d5178132f1e67f439 10.11.220.4:6379
slots:[1638-3276] (1639 slots) master
M: 0d14ec66bf7c6194894abf0052b90ce851cc0fd8 10.11.220.5:6379
slots:[3277-4914] (1638 slots) master
M: 06284060f638688f75d7cdd7f0a3215b939de467 10.11.220.7:6379
slots:[4915-6553] (1639 slots) master
M: 0270bf3509823824e380d26c2098a729f29eceb6 10.11.220.8:6379
slots:[6554-8191] (1638 slots) master
M: 067feffdf194774f78b9a7b304ad4c9e93192716 10.11.220.9:6379
slots:[8192-9829] (1638 slots) master
M: b93ad1b0f12f7399ea80c3246c680baa1dcd798e 10.11.220.10:6379
slots:[9830-11468] (1639 slots) master
M: 1dcfa7fb696910f6512b414186b1c40534ce79db 10.11.220.14:6379
slots:[11469-13106] (1638 slots) master
M: f979c57a9c087089a13a4a91f45e750a9476e65b 10.11.220.15:6379
slots:[13107-14745] (1639 slots) master
M: 10efa00adb81684cadec457506f83f3a03018fe3 10.11.220.16:6379
slots:[14746-16383] (1638 slots) master
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 10.11.220.3:6379)
M: f98872ebbeee82185b2e62516ef5d301e92d25ff 10.11.220.3:6379
slots:[0-1637] (1638 slots) master
M: b93ad1b0f12f7399ea80c3246c680baa1dcd798e 10.11.220.10:6379
slots:[9830-11468] (1639 slots) master
M: 06284060f638688f75d7cdd7f0a3215b939de467 10.11.220.7:6379
slots:[4915-6553] (1639 slots) master
M: 0270bf3509823824e380d26c2098a729f29eceb6 10.11.220.8:6379
slots:[6554-8191] (1638 slots) master
M: 0d14ec66bf7c6194894abf0052b90ce851cc0fd8 10.11.220.5:6379
slots:[3277-4914] (1638 slots) master
M: 10efa00adb81684cadec457506f83f3a03018fe3 10.11.220.16:6379
slots:[14746-16383] (1638 slots) master
M: f979c57a9c087089a13a4a91f45e750a9476e65b 10.11.220.15:6379
slots:[13107-14745] (1639 slots) master
M: 067feffdf194774f78b9a7b304ad4c9e93192716 10.11.220.9:6379
slots:[8192-9829] (1638 slots) master
M: 1dcfa7fb696910f6512b414186b1c40534ce79db 10.11.220.14:6379
slots:[11469-13106] (1638 slots) master
M: ed7989e22ab91d0066612c3d5178132f1e67f439 10.11.220.4:6379
slots:[1638-3276] (1639 slots) master
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@tdh3 redis-5.0.5]# ./src/redis-cli -h 10.11.220.3 -p 6379 -c
10.11.220.3:6379> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:10
cluster_size:10
cluster_current_epoch:10
cluster_my_epoch:1
cluster_stats_messages_ping_sent:88
cluster_stats_messages_pong_sent:100
cluster_stats_messages_sent:188
cluster_stats_messages_ping_received:91
cluster_stats_messages_pong_received:88
cluster_stats_messages_meet_received:9
cluster_stats_messages_received:188
10.11.220.3:6379> cluster nodes
b93ad1b0f12f7399ea80c3246c680baa1dcd798e 10.11.220.10:6379@16379 master - 0 1572846420725 7 connected 9830-11468
06284060f638688f75d7cdd7f0a3215b939de467 10.11.220.7:6379@16379 master - 0 1572846420000 4 connected 4915-6553
0270bf3509823824e380d26c2098a729f29eceb6 10.11.220.8:6379@16379 master - 0 1572846418719 5 connected 6554-8191
0d14ec66bf7c6194894abf0052b90ce851cc0fd8 10.11.220.5:6379@16379 master - 0 1572846417000 3 connected 3277-4914
10efa00adb81684cadec457506f83f3a03018fe3 10.11.220.16:6379@16379 master - 0 1572846421729 10 connected 14746-16383
f979c57a9c087089a13a4a91f45e750a9476e65b 10.11.220.15:6379@16379 master - 0 1572846422000 9 connected 13107-14745
067feffdf194774f78b9a7b304ad4c9e93192716 10.11.220.9:6379@16379 master - 0 1572846420000 6 connected 8192-9829
1dcfa7fb696910f6512b414186b1c40534ce79db 10.11.220.14:6379@16379 master - 0 1572846422732 8 connected 11469-13106
ed7989e22ab91d0066612c3d5178132f1e67f439 10.11.220.4:6379@16379 master - 0 1572846418000 2 connected 1638-3276
f98872ebbeee82185b2e62516ef5d301e92d25ff 10.11.220.3:6379@16379 myself,master - 0 1572846416000 1 connected 0-1637
10.11.220.3:6379>

https://my.oschina.net/jerval/blog/3080040

原文地址:https://www.cnblogs.com/songyuejie/p/12703571.html