2.9 redis-cluster

[root@server1 redis-6.2.1]# cd utils/
[root@server1 utils]# cd create-cluster/
[root@server1 create-cluster]# ls
create-cluster README
[root@server1 create-cluster]# pwd
/test/redis-6.2.1/utils/create-cluster
[root@server1 create-cluster]# ./create-cluster start
Starting 30001
Starting 30002
Starting 30003
Starting 30004
Starting 30005
Starting 30006
[root@server1 create-cluster]# ps ax | grep cluster
3862 ? Ssl 0:00 …/…/src//redis-server *:30001 [cluster]
3864 ? Ssl 0:00 …/…/src//redis-server *:30002 [cluster]
3866 ? Ssl 0:00 …/…/src//redis-server *:30003 [cluster]
3868 ? Ssl 0:00 …/…/src//redis-server *:30004 [cluster]
3870 ? Ssl 0:00 …/…/src//redis-server *:30005 [cluster]
3872 ? Ssl 0:00 …/…/src//redis-server *:30006 [cluster]
3926 pts/0 R+ 0:00 grep --color=auto cluster
[root@server1 create-cluster]# ls
30001.log 30005.log appendonly-30003.aof create-cluster nodes-30004.conf
30002.log 30006.log appendonly-30004.aof nodes-30001.conf nodes-30005.conf
30003.log appendonly-30001.aof appendonly-30005.aof nodes-30002.conf nodes-30006.conf
30004.log appendonly-30002.aof appendonly-30006.aof nodes-30003.conf README
[root@server1 create-cluster]# vim create-cluster

[root@server1 create-cluster]# ./create-cluster create
[root@server1 create-cluster]# redis-cli --cluster check 127.0.0.1:30001
127.0.0.1:30001 (ffabd2dd…) -> 0 keys | 5461 slots | 1 slaves.
127.0.0.1:30003 (b838bbb6…) -> 0 keys | 5461 slots | 1 slaves.
127.0.0.1:30002 (549a6c9d…) -> 0 keys | 5462 slots | 1 slaves.
[OK] 0 keys in 3 masters.
0.00 keys per slot on average.

Performing Cluster Check (using node 127.0.0.1:30001)
M: ffabd2dd9182675bae56cc0c4cb52a23d1bcd9c2 127.0.0.1:30001
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: 4991a5b6eaf23eaec5ea257744af46a6768961b8 127.0.0.1:30005
slots: (0 slots) slave
replicates ffabd2dd9182675bae56cc0c4cb52a23d1bcd9c2
M: b838bbb6a29ec5d009b3b28f3f0748338218382c 127.0.0.1:30003
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
S: a9d5c9887d9b1ad262bed505bec279db6d61e2c9 127.0.0.1:30006
slots: (0 slots) slave
replicates 549a6c9d545d26162c6ee6df5486fad4ca035771
S: 4761672b82ea0510f0cda91a8659cc65bbcc889a 127.0.0.1:30004
slots: (0 slots) slave
replicates b838bbb6a29ec5d009b3b28f3f0748338218382c
M: 549a6c9d545d26162c6ee6df5486fad4ca035771 127.0.0.1:30002
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.

[root@server1 create-cluster]# redis-cli -c -p 30001
127.0.0.1:30001> get name
-> Redirected to slot [5798] located at 127.0.0.1:30002
(nil)
127.0.0.1:30002> set name westos
OK
127.0.0.1:30002> get name
“westos”

[root@server1 create-cluster]# redis-cli -c -p 30006
127.0.0.1:30006> get name
-> Redirected to slot [5798] located at 127.0.0.1:30002
“westos”
127.0.0.1:30002>

模拟故障

127.0.0.1:30002> SHUTDOWN
not connected>
[root@server1 create-cluster]# redis-cli -c -p 30001
127.0.0.1:30001> get name
-> Redirected to slot [5798] located at 127.0.0.1:30006
“westos”
127.0.0.1:30006>

[root@server1 create-cluster]# redis-cli --cluster check 127.0.0.1:30001
Could not connect to Redis at 127.0.0.1:30002: Connection refused
127.0.0.1:30001 (ffabd2dd…) -> 0 keys | 5461 slots | 1 slaves.
127.0.0.1:30003 (b838bbb6…) -> 0 keys | 5461 slots | 1 slaves.
127.0.0.1:30006 (a9d5c988…) -> 1 keys | 5462 slots | 0 slaves.
[OK] 1 keys in 3 masters.
0.00 keys per slot on average.

Performing Cluster Check (using node 127.0.0.1:30001)
M: ffabd2dd9182675bae56cc0c4cb52a23d1bcd9c2 127.0.0.1:30001
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: 4991a5b6eaf23eaec5ea257744af46a6768961b8 127.0.0.1:30005
slots: (0 slots) slave
replicates ffabd2dd9182675bae56cc0c4cb52a23d1bcd9c2
M: b838bbb6a29ec5d009b3b28f3f0748338218382c 127.0.0.1:30003
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
M: a9d5c9887d9b1ad262bed505bec279db6d61e2c9 127.0.0.1:30006
slots:[5461-10922] (5462 slots) master
S: 4761672b82ea0510f0cda91a8659cc65bbcc889a 127.0.0.1:30004
slots: (0 slots) slave
replicates b838bbb6a29ec5d009b3b28f3f0748338218382c
[OK] All nodes agree about slots configuration.

Check for open slots…
Check slots coverage…
[OK] All 16384 slots covered.

[root@server1 create-cluster]# redis-cli -c -p 30001
127.0.0.1:30001> get name
-> Redirected to slot [5798] located at 127.0.0.1:30006
“westos”
127.0.0.1:30006> SHUTDOWN
not connected>

集群不可用

[root@server1 create-cluster]# redis-cli -c -p 30001
127.0.0.1:30001> get name
(error) CLUSTERDOWN The cluster is down

[root@server1 create-cluster]# redis-cli --cluster check 127.0.0.1:30001
Could not connect to Redis at 127.0.0.1:30006: Connection refused
Could not connect to Redis at 127.0.0.1:30002: Connection refused
127.0.0.1:30001 (ffabd2dd…) -> 0 keys | 5461 slots | 1 slaves.
127.0.0.1:30003 (b838bbb6…) -> 0 keys | 5461 slots | 1 slaves.
[OK] 0 keys in 2 masters.
0.00 keys per slot on average.

Performing Cluster Check (using node 127.0.0.1:30001)
M: ffabd2dd9182675bae56cc0c4cb52a23d1bcd9c2 127.0.0.1:30001
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: 4991a5b6eaf23eaec5ea257744af46a6768961b8 127.0.0.1:30005
slots: (0 slots) slave
replicates ffabd2dd9182675bae56cc0c4cb52a23d1bcd9c2
M: b838bbb6a29ec5d009b3b28f3f0748338218382c 127.0.0.1:30003
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
S: 4761672b82ea0510f0cda91a8659cc65bbcc889a 127.0.0.1:30004
slots: (0 slots) slave
replicates b838bbb6a29ec5d009b3b28f3f0748338218382c
[OK] All nodes agree about slots configuration.

Check for open slots…
Check slots coverage…
[ERR] Not all 16384 slots are covered by nodes.

恢复

[root@server1 create-cluster]# ./create-cluster start
Starting 30001
Starting 30002
Starting 30003
Starting 30004
Starting 30005
Starting 30006
[root@server1 create-cluster]# ps ax | grep cluster
3862 ? Ssl 0:03 …/…/src//redis-server *:30001 [cluster]
3866 ? Ssl 0:02 …/…/src//redis-server *:30003 [cluster]
3868 ? Ssl 0:03 …/…/src//redis-server *:30004 [cluster]
3870 ? Ssl 0:03 …/…/src//redis-server *:30005 [cluster]
4611 ? Ssl 0:00 …/…/src//redis-server *:30002 [cluster]
4623 ? Ssl 0:00 …/…/src//redis-server *:30006 [cluster]
4641 pts/0 R+ 0:00 grep --color=auto cluster

[root@server1 create-cluster]# redis-cli --cluster check 127.0.0.1:30001
127.0.0.1:30001 (ffabd2dd…) -> 0 keys | 5461 slots | 1 slaves.
127.0.0.1:30003 (b838bbb6…) -> 0 keys | 5461 slots | 1 slaves.
127.0.0.1:30006 (a9d5c988…) -> 1 keys | 5462 slots | 1 slaves.
[OK] 1 keys in 3 masters.
0.00 keys per slot on average.

Performing Cluster Check (using node 127.0.0.1:30001)
M: ffabd2dd9182675bae56cc0c4cb52a23d1bcd9c2 127.0.0.1:30001
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: 4991a5b6eaf23eaec5ea257744af46a6768961b8 127.0.0.1:30005
slots: (0 slots) slave
replicates ffabd2dd9182675bae56cc0c4cb52a23d1bcd9c2
M: b838bbb6a29ec5d009b3b28f3f0748338218382c 127.0.0.1:30003
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
M: a9d5c9887d9b1ad262bed505bec279db6d61e2c9 127.0.0.1:30006
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
S: 4761672b82ea0510f0cda91a8659cc65bbcc889a 127.0.0.1:30004
slots: (0 slots) slave
replicates b838bbb6a29ec5d009b3b28f3f0748338218382c
S: 549a6c9d545d26162c6ee6df5486fad4ca035771 127.0.0.1:30002
slots: (0 slots) slave
replicates a9d5c9887d9b1ad262bed505bec279db6d61e2c9
[OK] All nodes agree about slots configuration.

Check for open slots…
Check slots coverage…
[OK] All 16384 slots covered.

[root@server1 create-cluster]# redis-cli -c -p 30001
127.0.0.1:30001> get name
-> Redirected to slot [5798] located at 127.0.0.1:30006
“westos”

添加节点

[root@server1 create-cluster]# vim create-cluster
[root@server1 create-cluster]# ./create-cluster start
Starting 30001
Starting 30002
Starting 30003
Starting 30004
Starting 30005
Starting 30006
Starting 30007
Starting 30008
[root@server1 create-cluster]# ps ax | grep cluster
3862 ? Ssl 0:03 …/…/src//redis-server *:30001 [cluster]
3866 ? Ssl 0:03 …/…/src//redis-server *:30003 [cluster]
3868 ? Ssl 0:03 …/…/src//redis-server *:30004 [cluster]
3870 ? Ssl 0:03 …/…/src//redis-server *:30005 [cluster]
4611 ? Ssl 0:00 …/…/src//redis-server *:30002 [cluster]
4623 ? Ssl 0:00 …/…/src//redis-server *:30006 [cluster]
4784 ? Ssl 0:00 …/…/src//redis-server *:30007 [cluster]
4786 ? Ssl 0:00 …/…/src//redis-server *:30008 [cluster]
4820 pts/0 S+ 0:00 grep --color=auto cluster

[root@server1 create-cluster]# redis-cli --cluster add-node 127.0.0.1:30007 127.0.0.1:30001

[root@server1 create-cluster]# redis-cli --cluster check 127.0.0.1:30001
127.0.0.1:30001 (ffabd2dd…) -> 0 keys | 5461 slots | 1 slaves.
127.0.0.1:30003 (b838bbb6…) -> 0 keys | 5461 slots | 1 slaves.
127.0.0.1:30006 (a9d5c988…) -> 1 keys | 5462 slots | 1 slaves.
127.0.0.1:30007 (8e39ef73…) -> 0 keys | 0 slots | 0 slaves.
[OK] 1 keys in 4 masters.
0.00 keys per slot on average.

Performing Cluster Check (using node 127.0.0.1:30001)
M: ffabd2dd9182675bae56cc0c4cb52a23d1bcd9c2 127.0.0.1:30001
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: 4991a5b6eaf23eaec5ea257744af46a6768961b8 127.0.0.1:30005
slots: (0 slots) slave
replicates ffabd2dd9182675bae56cc0c4cb52a23d1bcd9c2
M: b838bbb6a29ec5d009b3b28f3f0748338218382c 127.0.0.1:30003
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
M: a9d5c9887d9b1ad262bed505bec279db6d61e2c9 127.0.0.1:30006
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
M: 8e39ef73d0b5780f796753d1891e53914bce16d7 127.0.0.1:30007
slots: (0 slots) master
S: 4761672b82ea0510f0cda91a8659cc65bbcc889a 127.0.0.1:30004
slots: (0 slots) slave
replicates b838bbb6a29ec5d009b3b28f3f0748338218382c
S: 549a6c9d545d26162c6ee6df5486fad4ca035771 127.0.0.1:30002
slots: (0 slots) slave
replicates a9d5c9887d9b1ad262bed505bec279db6d61e2c9
[OK] All nodes agree about slots configuration.

Check for open slots…
Check slots coverage…
[OK] All 16384 slots covered.

给7分配哈希槽

[root@server1 create-cluster]# redis-cli --cluster reshard 127.0.0.1:30001 --cluster-from 127.0.0.1:30001 --cluster-to 127.0.0.1:30007 --cluster-slots 1000 --cluster-yes

Performing Cluster Check (using node 127.0.0.1:30001)
M: ffabd2dd9182675bae56cc0c4cb52a23d1bcd9c2 127.0.0.1:30001
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: 4991a5b6eaf23eaec5ea257744af46a6768961b8 127.0.0.1:30005
slots: (0 slots) slave
replicates ffabd2dd9182675bae56cc0c4cb52a23d1bcd9c2
M: b838bbb6a29ec5d009b3b28f3f0748338218382c 127.0.0.1:30003
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
M: a9d5c9887d9b1ad262bed505bec279db6d61e2c9 127.0.0.1:30006
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
M: 8e39ef73d0b5780f796753d1891e53914bce16d7 127.0.0.1:30007
slots: (0 slots) master
S: 4761672b82ea0510f0cda91a8659cc65bbcc889a 127.0.0.1:30004
slots: (0 slots) slave
replicates b838bbb6a29ec5d009b3b28f3f0748338218382c
S: 549a6c9d545d26162c6ee6df5486fad4ca035771 127.0.0.1:30002
slots: (0 slots) slave
replicates a9d5c9887d9b1ad262bed505bec279db6d61e2c9
[OK] All nodes agree about slots configuration.

Check for open slots…
Check slots coverage…
[OK] All 16384 slots covered.
*** The specified node (127.0.0.1:30007) is not known or not a master, please retry.

报错的解决方法:

[root@server1 create-cluster]# redis-cli --cluster reshard 127.0.0.1:30001

Performing Cluster Check (using node 127.0.0.1:30001)
M: ffabd2dd9182675bae56cc0c4cb52a23d1bcd9c2 127.0.0.1:30001
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: 4991a5b6eaf23eaec5ea257744af46a6768961b8 127.0.0.1:30005
slots: (0 slots) slave
replicates ffabd2dd9182675bae56cc0c4cb52a23d1bcd9c2
M: b838bbb6a29ec5d009b3b28f3f0748338218382c 127.0.0.1:30003
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
M: a9d5c9887d9b1ad262bed505bec279db6d61e2c9 127.0.0.1:30006
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
M: 8e39ef73d0b5780f796753d1891e53914bce16d7 127.0.0.1:30007
slots: (0 slots) master
S: 4761672b82ea0510f0cda91a8659cc65bbcc889a 127.0.0.1:30004
slots: (0 slots) slave
replicates b838bbb6a29ec5d009b3b28f3f0748338218382c
S: 549a6c9d545d26162c6ee6df5486fad4ca035771 127.0.0.1:30002
slots: (0 slots) slave
replicates a9d5c9887d9b1ad262bed505bec279db6d61e2c9
[OK] All nodes agree about slots configuration.

Check for open slots…
Check slots coverage…
[OK] All 16384 slots covered.
How many slots do you want to move (from 1 to 16384)? 1000
What is the receiving node ID? 8e39ef73d0b5780f796753d1891e53914bce16d7
Please enter all the source node IDs.
Type ‘all’ to use all the nodes as source nodes for the hash slots.
Type ‘done’ once you entered all the source nodes IDs.
Source node #1: all

[root@server1 create-cluster]# redis-cli --cluster check 127.0.0.1:30001
127.0.0.1:30001 (ffabd2dd…) -> 0 keys | 5128 slots | 1 slaves.
127.0.0.1:30003 (b838bbb6…) -> 0 keys | 5128 slots | 1 slaves.
127.0.0.1:30006 (a9d5c988…) -> 1 keys | 5128 slots | 1 slaves.
127.0.0.1:30007 (8e39ef73…) -> 0 keys | 1000 slots | 0 slaves.
[OK] 1 keys in 4 masters.
0.00 keys per slot on average.

Performing Cluster Check (using node 127.0.0.1:30001)
M: ffabd2dd9182675bae56cc0c4cb52a23d1bcd9c2 127.0.0.1:30001
slots:[333-5460] (5128 slots) master
1 additional replica(s)
S: 4991a5b6eaf23eaec5ea257744af46a6768961b8 127.0.0.1:30005
slots: (0 slots) slave
replicates ffabd2dd9182675bae56cc0c4cb52a23d1bcd9c2
M: b838bbb6a29ec5d009b3b28f3f0748338218382c 127.0.0.1:30003
slots:[11256-16383] (5128 slots) master
1 additional replica(s)
M: a9d5c9887d9b1ad262bed505bec279db6d61e2c9 127.0.0.1:30006
slots:[5795-10922] (5128 slots) master
1 additional replica(s)
M: 8e39ef73d0b5780f796753d1891e53914bce16d7 127.0.0.1:30007
slots:[0-332],[5461-5794],[10923-11255] (1000 slots) master
S: 4761672b82ea0510f0cda91a8659cc65bbcc889a 127.0.0.1:30004
slots: (0 slots) slave
replicates b838bbb6a29ec5d009b3b28f3f0748338218382c
S: 549a6c9d545d26162c6ee6df5486fad4ca035771 127.0.0.1:30002
slots: (0 slots) slave
replicates a9d5c9887d9b1ad262bed505bec279db6d61e2c9
[OK] All nodes agree about slots configuration.

Check for open slots…
Check slots coverage…
[OK] All 16384 slots covered.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要安装 Redis Cluster,可以编写一个 Shell 脚本来自动化安装过程。以下是一个示例脚本: ```shell #!/bin/bash # 下载 Redis wget http://download.redis.io/releases/redis-6.2.1.tar.gz tar xzf redis-6.2.1.tar.gz cd redis-6.2.1 # 编译 Redis make # 复制 Redis 可执行文件到 /usr/local/bin sudo cp src/redis-cli src/redis-server /usr/local/bin # 创建 Redis Cluster 目录 sudo mkdir /var/lib/redis-cluster # 配置 Redis Cluster 节点 for port in {7000..7005}; do sudo mkdir -p /var/lib/redis-cluster/$port sudo cp redis.conf /var/lib/redis-cluster/$port/ sudo sed -i "s/port 6379/port $port/" /var/lib/redis-cluster/$port/redis.conf sudo sed -i "s/# cluster-enabled yes/cluster-enabled yes/" /var/lib/redis-cluster/$port/redis.conf sudo sed -i "s/# cluster-config-file nodes-6379.conf/cluster-config-file nodes-$port.conf/" /var/lib/redis-cluster/$port/redis.conf sudo sed -i "s/# cluster-node-timeout 15000/cluster-node-timeout 5000/" /var/lib/redis-cluster/$port/redis.conf done # 启动 Redis Cluster 节点 for port in {7000..7005}; do redis-server /var/lib/redis-cluster/$port/redis.conf --daemonize yes done # 创建 Redis Cluster yes | redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1 # 清理安装文件 cd .. rm -rf redis-6.2.1 redis-6.2.1.tar.gz ``` 将以上脚本保存为 `install_redis_cluster.sh`,然后在终端中运行以下命令来执行脚本: ```shell chmod +x install_redis_cluster.sh ./install_redis_cluster.sh ``` 脚本将会下载、编译和配置 Redis,然后启动 Redis Cluster 节点,并创建 Redis Cluster。 请注意,此脚本仅适用于安装 Redis 6.2.1 版本的 Redis Cluster。如需安装其他版本,请根据具体情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值