Redis-Cluster 搭建实践

  • 1.创建文件夹配置文件
  • 2.编辑启动脚本
  • 3.编写停止脚本
  • 4. 启动redis 集群
  • 5.创建Redis集群
  • 6.向集群中添加节点
  • 7.向集群添加从节点
  • 8.JedisCluster连接Redis集群

Redis 集群模式搭建,并向集群中添加主从节点,重新分配solt


1.创建文件夹配置文件

创建redis-cluster 目录,并配置master1(7001) master2(7002) master3(7003) slave1(7004) slave2(7005) slave3(7006)

[root@bigdata01 redis-cluster]# tree
.
├── master1
│   └── bin
│       ├── dump.rdb
│       ├── nodes.conf
│       ├── redis-benchmark
│       ├── redis-check-aof
│       ├── redis-check-rdb
│       ├── redis-cli
│       ├── redis.conf
│       ├── redis-sentinel -> redis-server
│       └── redis-server
├── master2
│   └── bin
│       ├── dump.rdb
│       ├── nodes.conf
│       ├── redis-benchmark
│       ├── redis-check-aof
│       ├── redis-check-rdb
│       ├── redis-cli
│       ├── redis.conf
│       ├── redis-sentinel -> redis-server
│       └── redis-server
├── master3
│   └── bin
│       ├── dump.rdb
│       ├── nodes.conf
│       ├── redis-benchmark
│       ├── redis-check-aof
│       ├── redis-check-rdb
│       ├── redis-cli
│       ├── redis.conf
│       ├── redis-sentinel -> redis-server
│       └── redis-server
├── slave1
│   └── bin
│       ├── dump.rdb
│       ├── nodes.conf
│       ├── redis-benchmark
│       ├── redis-check-aof
│       ├── redis-check-rdb
│       ├── redis-cli
│       ├── redis.conf
│       ├── redis-sentinel -> redis-server
│       └── redis-server
├── slave2
│   └── bin
│       ├── dump.rdb
│       ├── nodes.conf
│       ├── redis-benchmark
│       ├── redis-check-aof
│       ├── redis-check-rdb
│       ├── redis-cli
│       ├── redis.conf
│       ├── redis-sentinel -> redis-server
│       └── redis-server
├── slave3
│   └── bin
│       ├── dump.rdb
│       ├── nodes.conf
│       ├── redis-benchmark
│       ├── redis-check-aof
│       ├── redis-check-rdb
│       ├── redis-cli
│       ├── redis.conf
│       ├── redis-sentinel -> redis-server
│       └── redis-server
└── start-cluster.sh

2.编辑启动脚本

vi start-cluster.sh

#!/bin/bashecho "start redis-7001"
cd master1/bin
./redis-server redis.confcd ../../
echo "start redis-7002"
cd master2/bin
./redis-server redis.confcd ../../
echo "start redis-7003"
cd master3/bin
./redis-server redis.confcd ../../
echo "start redis-7004"
cd slave1/bin
./redis-server redis.confcd ../../
echo "start redis-7005"
cd slave2/bin
./redis-server redis.confcd ../../
echo "start redis-7006"
cd slave3/bin
./redis-server redis.conf

3.编写停止脚本

#!/bin/bashecho "stop redis-cluster"ps ux | grep -E 'redis' | grep -v grep |awk '{print $2}' |xargs kill -s 9

4. 启动redis 集群

[root@bigdata01 redis-cluster]# sh start-cluster.sh
start redis-7001
12987:C 03 Jun 2021 21:42:39.983 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
12987:C 03 Jun 2021 21:42:39.983 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=12987, just started
12987:C 03 Jun 2021 21:42:39.983 # Configuration loaded
start redis-7002
12989:C 03 Jun 2021 21:42:39.986 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
12989:C 03 Jun 2021 21:42:39.986 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=12989, just started
12989:C 03 Jun 2021 21:42:39.986 # Configuration loaded
start redis-7003
12991:C 03 Jun 2021 21:42:39.992 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
12991:C 03 Jun 2021 21:42:39.992 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=12991, just started
12991:C 03 Jun 2021 21:42:39.992 # Configuration loaded
start redis-7004
12993:C 03 Jun 2021 21:42:39.999 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
12993:C 03 Jun 2021 21:42:39.999 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=12993, just started
12993:C 03 Jun 2021 21:42:39.999 # Configuration loaded
start redis-7005
13001:C 03 Jun 2021 21:42:40.016 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
13001:C 03 Jun 2021 21:42:40.016 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=13001, just started
13001:C 03 Jun 2021 21:42:40.016 # Configuration loaded
start redis-7006
13009:C 03 Jun 2021 21:42:40.045 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
13009:C 03 Jun 2021 21:42:40.045 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=13009, just started
13009:C 03 Jun 2021 21:42:40.045 # Configuration loaded# 查看redis 进程
[root@bigdata01 redis-cluster]# ps -ef |grep redis
root      12988      1  0 21:42 ?        00:00:00 ./redis-server *:7001 [cluster]
root      12990      1  0 21:42 ?        00:00:00 ./redis-server *:7002 [cluster]
root      12992      1  0 21:42 ?        00:00:00 ./redis-server *:7003 [cluster]
root      13000      1  0 21:42 ?        00:00:00 ./redis-server *:7004 [cluster]
root      13005      1  0 21:42 ?        00:00:00 ./redis-server *:7005 [cluster]
root      13013      1  0 21:42 ?        00:00:00 ./redis-server *:7006 [cluster]
root      13035  10859  0 21:42 pts/0    00:00:00 grep --color=auto redis

5.创建Redis集群

创建时Redis里不要有数据

cd /var/redis-cluster/master1/bin./redis-cli --cluster create 192.168.52.50:7001 192.168.52.50:7002 192.168.52.50:7003 192.168.52.50:7004 192.168.52.50:7005 192.168.52.50:7006 --cluster-replicas 1

报错:

[root@bigdata01 bin]# ./redis-cli --cluster create 192.168.52.50:7001 192.168.52.50:7002 192.168.52.50:7003 192.168.52.50:7004 192.168.52.50:7005 192.168.52.50:7006 --cluster-replicas 1
[ERR] Node 192.168.52.50:7001 DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. In this mode connections are only accepted from the loopback interface. If you want to connect from external computers to Redis you may adopt one of the following solutions: 1) Just disable protected mode sending the command 'CONFIG SET protected-mode no' from the loopback interface by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly accessible from internet if you do so. Use CONFIG REWRITE to make this change permanent. 2) Alternatively you can just disable the protected mode by editing the Redis configuration file, and setting the protected mode option to 'no', and then restarting the server. 3) If you started the server manually just for testing, restart it with the '--protected-mode no' option. 4) Setup a bind address or an authentication password. NOTE: You only need to do one of the above things in order for the server to start accepting connections from the outside.

解决:修改redis.conf 的参数,关闭保护模式之后重启(所有的配置文件redis.conf)

重新创建集群

[root@bigdata01 redis-cluster]# ./master1/bin/redis-cli --cluster create 192.168.52.50:7001 192.168.52.50:7002 192.168.52.50:7003 192.168.52.50:7004 192.168.52.50:7005 192.168.52.50:7006 --cluster-replicas 1
>>> 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.52.50:7005 to 192.168.52.50:7001
Adding replica 192.168.52.50:7006 to 192.168.52.50:7002
Adding replica 192.168.52.50:7004 to 192.168.52.50:7003
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: 8d79947a54b87afdb9f190dbf76a49ae6fd85b40 192.168.52.50:7001slots:[0-5460] (5461 slots) master
M: 0936f3a083cbb4ad356d802be1dbf478a7af2e29 192.168.52.50:7002slots:[5461-10922] (5462 slots) master
M: 41bc4b5a6faac385a4558e587a488515ef41d3bb 192.168.52.50:7003slots:[10923-16383] (5461 slots) master
S: 056b99be61907e85e6a6a6bc1bd9ebdc9f753032 192.168.52.50:7004replicates 8d79947a54b87afdb9f190dbf76a49ae6fd85b40
S: e3e167b42bedbeb0c2f48b80bcbecaa46ed9312d 192.168.52.50:7005replicates 0936f3a083cbb4ad356d802be1dbf478a7af2e29
S: d5ccdab6de4f83c8e85d43e5718d6d35ff366687 192.168.52.50:7006replicates 41bc4b5a6faac385a4558e587a488515ef41d3bb
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.52.50:7001)
M: 8d79947a54b87afdb9f190dbf76a49ae6fd85b40 192.168.52.50:7001slots:[0-5460] (5461 slots) master1 additional replica(s)
M: 41bc4b5a6faac385a4558e587a488515ef41d3bb 192.168.52.50:7003slots:[10923-16383] (5461 slots) master1 additional replica(s)
S: e3e167b42bedbeb0c2f48b80bcbecaa46ed9312d 192.168.52.50:7005slots: (0 slots) slavereplicates 0936f3a083cbb4ad356d802be1dbf478a7af2e29
S: d5ccdab6de4f83c8e85d43e5718d6d35ff366687 192.168.52.50:7006slots: (0 slots) slavereplicates 41bc4b5a6faac385a4558e587a488515ef41d3bb
S: 056b99be61907e85e6a6a6bc1bd9ebdc9f753032 192.168.52.50:7004slots: (0 slots) slavereplicates 8d79947a54b87afdb9f190dbf76a49ae6fd85b40
M: 0936f3a083cbb4ad356d802be1dbf478a7af2e29 192.168.52.50:7002slots:[5461-10922] (5462 slots) master1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

连接集群:

[root@bigdata01 bin]# ./redis-cli -h 127.0.0.1 -p 7001 -c
127.0.0.1:7001> set hadoop hdfs
-> Redirected to slot [8237] located at 192.168.52.50:7002
OK
192.168.52.50:7002> get hadoop
"hdfs"

查看集群状态:

192.168.52.50:7002> info
# Server
redis_version:5.0.5
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:b924262fd714c432
redis_mode:cluster
os:Linux 3.10.0-957.el7.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:atomic-builtin
gcc_version:4.8.5
process_id:13631
run_id:d5a09f35c8c64258c07508a20423ab518cf9b212
tcp_port:7002
uptime_in_seconds:233
uptime_in_days:0
hz:10
configured_hz:10
lru_clock:12115795
executable:/var/redis-cluster/master2/bin/./redis-server
config_file:/var/redis-cluster/master2/bin/redis.conf
。。。。。。

查看集群中的节点:

192.168.52.50:7002>  cluster nodes
41bc4b5a6faac385a4558e587a488515ef41d3bb 192.168.52.50:7003@17003 master - 0 1622728542304 3 connected 10923-16383
0936f3a083cbb4ad356d802be1dbf478a7af2e29 192.168.52.50:7002@17002 myself,master - 0 1622728541000 2 connected 5461-10922
e3e167b42bedbeb0c2f48b80bcbecaa46ed9312d 192.168.52.50:7005@17005 slave 0936f3a083cbb4ad356d802be1dbf478a7af2e29 0 1622728539000 5 connected
056b99be61907e85e6a6a6bc1bd9ebdc9f753032 192.168.52.50:7004@17004 slave 8d79947a54b87afdb9f190dbf76a49ae6fd85b40 0 1622728541282 4 connected
d5ccdab6de4f83c8e85d43e5718d6d35ff366687 192.168.52.50:7006@17006 slave 41bc4b5a6faac385a4558e587a488515ef41d3bb 0 1622728537226 6 connected
8d79947a54b87afdb9f190dbf76a49ae6fd85b40 192.168.52.50:7001@17001 master - 0 1622728540267 1 connected 0-5460
192.168.52.50:7002>

6.向集群中添加节点

创建新的配置文件:

[root@bigdata01 master4]# cd /opt/redis/redis-5.0.5/src/
[root@bigdata01 src]# make install PREFIX=/var/redis-cluster/master4Hint: It's a good idea to run 'make test' ;)INSTALL installINSTALL installINSTALL installINSTALL installINSTALL install
[root@bigdata01 src]# cd /var/redis-cluster/master4
[root@bigdata01 master4]# ll
total 0
drwxr-xr-x 2 root root 134 Jun  3 22:00 bin
[root@bigdata01 master4]# cd bin/[root@bigdata01 bin]# cp /opt/redis/redis-5.0.5/redis.conf ./[root@bigdata01 bin]# vi redis.conf [root@bigdata01 bin]# ./redis-server redis.conf
14433:C 03 Jun 2021 22:04:39.265 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
14433:C 03 Jun 2021 22:04:39.265 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=14433, just started
14433:C 03 Jun 2021 22:04:39.265 # Configuration loaded
[root@bigdata01 bin]# ps-ef |grep redis
-bash: ps-ef: command not found
[root@bigdata01 bin]# ps -ef |grep redis
root      13626      1  0 21:51 ?        00:00:00 ./redis-server *:7001 [cluster]
root      13631      1  0 21:51 ?        00:00:00 ./redis-server *:7002 [cluster]
root      13636      1  0 21:51 ?        00:00:00 ./redis-server *:7003 [cluster]
root      13638      1  0 21:51 ?        00:00:00 ./redis-server *:7004 [cluster]
root      13646      1  0 21:51 ?        00:00:00 ./redis-server *:7005 [cluster]
root      13651      1  0 21:51 ?        00:00:00 ./redis-server *:7006 [cluster]
root      13834  10859  0 21:54 pts/0    00:00:00 ./redis-cli -h 127.0.0.1 -p 7001 -c
root      14434      1  0 22:04 ?        00:00:00 ./redis-server *:7007 [cluster]
root      14457  11693  0 22:04 pts/1    00:00:00 grep --color=auto redis
[root@bigdata01 bin]# 

添加节点

./redis-cli --cluster add-node 192.168.52.50:7007 192.168.52.50:7001
[root@bigdata01 bin]# ./redis-cli --cluster add-node 192.168.52.50:7007 192.168.52.50:7001>>> Adding node 192.168.52.50:7007 to cluster 192.168.52.50:7001
>>> Performing Cluster Check (using node 192.168.52.50:7001)
>>> M: 8d79947a54b87afdb9f190dbf76a49ae6fd85b40 192.168.52.50:7001
>>> slots:[0-5460] (5461 slots) master
>>> 1 additional replica(s)
>>> M: 41bc4b5a6faac385a4558e587a488515ef41d3bb 192.168.52.50:7003
>>> slots:[10923-16383] (5461 slots) master
>>> 1 additional replica(s)
>>> S: e3e167b42bedbeb0c2f48b80bcbecaa46ed9312d 192.168.52.50:7005
>>> slots: (0 slots) slave
>>> replicates 0936f3a083cbb4ad356d802be1dbf478a7af2e29
>>> S: d5ccdab6de4f83c8e85d43e5718d6d35ff366687 192.168.52.50:7006
>>> slots: (0 slots) slave
>>> replicates 41bc4b5a6faac385a4558e587a488515ef41d3bb
>>> S: 056b99be61907e85e6a6a6bc1bd9ebdc9f753032 192.168.52.50:7004
>>> slots: (0 slots) slave
>>> replicates 8d79947a54b87afdb9f190dbf76a49ae6fd85b40
>>> M: 0936f3a083cbb4ad356d802be1dbf478a7af2e29 192.168.52.50:7002
>>> 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.
>>> Send CLUSTER MEET to node 192.168.52.50:7007 to make it join the cluster.
>>> [OK] New node added correctly.
>>> [root@bigdata01 bin]#

查看集群结点发现7007已添加到集群中

[root@bigdata01 bin]# ./redis-cli -h 127.0.0.1 -p 7001 -c
127.0.0.1:7001>  cluster nodes
45ae324443605b2fde9460ebb7a2d05a5a8e1b31 192.168.52.50:7007@17007 master - 0 1622729269000 0 connected
41bc4b5a6faac385a4558e587a488515ef41d3bb 192.168.52.50:7003@17003 master - 0 1622729271682 3 connected 10923-16383
e3e167b42bedbeb0c2f48b80bcbecaa46ed9312d 192.168.52.50:7005@17005 slave 0936f3a083cbb4ad356d802be1dbf478a7af2e29 0 1622729273728 5 connected
8d79947a54b87afdb9f190dbf76a49ae6fd85b40 192.168.52.50:7001@17001 myself,master - 0 1622729272000 1 connected 0-5460
d5ccdab6de4f83c8e85d43e5718d6d35ff366687 192.168.52.50:7006@17006 slave 41bc4b5a6faac385a4558e587a488515ef41d3bb 0 1622729273000 6 connected
056b99be61907e85e6a6a6bc1bd9ebdc9f753032 192.168.52.50:7004@17004 slave 8d79947a54b87afdb9f190dbf76a49ae6fd85b40 0 1622729272704 4 connected
0936f3a083cbb4ad356d802be1dbf478a7af2e29 192.168.52.50:7002@17002 master - 0 1622729270672 2 connected 5461-10922
127.0.0.1:7001>

hash槽重新分配(数据迁移)添加完主节点需要对主节点进行hash槽分配,这样该主节才可以存储数据。给刚添加的7007结点分配槽

./redis-cli --cluster reshard 192.168.52.50:7007选择分配4000 个
How many slots do you want to move (from 1 to 16384)? 4000输入7007 节点的ID值
How many slots do you want to move (from 1 to 16384)?  45ae324443605b2fde9460ebb7a2d05a5a8e1b31Please 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.选择 all
。。。。。。
Moving slot 1320 from 192.168.52.50:7001 to 192.168.52.50:7007:
Moving slot 1321 from 192.168.52.50:7001 to 192.168.52.50:7007:
Moving slot 1322 from 192.168.52.50:7001 to 192.168.52.50:7007:
Moving slot 1323 from 192.168.52.50:7001 to 192.168.52.50:7007:
Moving slot 1324 from 192.168.52.50:7001 to 192.168.52.50:7007:
Moving slot 1325 from 192.168.52.50:7001 to 192.168.52.50:7007:
Moving slot 1326 from 192.168.52.50:7001 to 192.168.52.50:7007:
Moving slot 1327 from 192.168.52.50:7001 to 192.168.52.50:7007:
Moving slot 1328 from 192.168.52.50:7001 to 192.168.52.50:7007:
Moving slot 1329 from 192.168.52.50:7001 to 192.168.52.50:7007:
Moving slot 1330 from 192.168.52.50:7001 to 192.168.52.50:7007:
Moving slot 1331 from 192.168.52.50:7001 to 192.168.52.50:7007:
Moving slot 1332 from 192.168.52.50:7001 to 192.168.52.50:7007:

查看移动结果:

127.0.0.1:7001>  cluster nodes
45ae324443605b2fde9460ebb7a2d05a5a8e1b31 192.168.52.50:7007@17007 master - 0 1622729573000 7 connected 0-1332 5461-6794 10923-12255
41bc4b5a6faac385a4558e587a488515ef41d3bb 192.168.52.50:7003@17003 master - 0 1622729570000 3 connected 12256-16383
e3e167b42bedbeb0c2f48b80bcbecaa46ed9312d 192.168.52.50:7005@17005 slave 0936f3a083cbb4ad356d802be1dbf478a7af2e29 0 1622729573000 5 connected
8d79947a54b87afdb9f190dbf76a49ae6fd85b40 192.168.52.50:7001@17001 myself,master - 0 1622729572000 1 connected 1333-5460
d5ccdab6de4f83c8e85d43e5718d6d35ff366687 192.168.52.50:7006@17006 slave 41bc4b5a6faac385a4558e587a488515ef41d3bb 0 1622729571000 6 connected
056b99be61907e85e6a6a6bc1bd9ebdc9f753032 192.168.52.50:7004@17004 slave 8d79947a54b87afdb9f190dbf76a49ae6fd85b40 0 1622729573739 4 connected
0936f3a083cbb4ad356d802be1dbf478a7af2e29 192.168.52.50:7002@17002 master - 0 1622729572000 2 connected 6795-10922

7.向集群添加从节点

添加7008从结点,将7008作为7007的从结点

./redis-cli --cluster add-node 192.168.52.50:7008 192.168.52.50:7007 --cluster-slave --cluster-master-id 45ae324443605b2fde9460ebb7a2d05a5a8e1b31

新增从从节点的配置文件:

[root@bigdata01 bin]# vi redis.conf
[root@bigdata01 bin]# ./redis-server redis.conf
15323:C 03 Jun 2021 22:19:49.895 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
15323:C 03 Jun 2021 22:19:49.895 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=15323, just started
15323:C 03 Jun 2021 22:19:49.895 # Configuration loaded
[root@bigdata01 bin]# ps -ef |grep redis
root      13626      1  0 21:51 ?        00:00:02 ./redis-server *:7001 [cluster]
root      13631      1  0 21:51 ?        00:00:02 ./redis-server *:7002 [cluster]
root      13636      1  0 21:51 ?        00:00:02 ./redis-server *:7003 [cluster]
root      13638      1  0 21:51 ?        00:00:01 ./redis-server *:7004 [cluster]
root      13646      1  0 21:51 ?        00:00:01 ./redis-server *:7005 [cluster]
root      13651      1  0 21:51 ?        00:00:01 ./redis-server *:7006 [cluster]
root      14434      1  0 22:04 ?        00:00:03 ./redis-server *:7007 [cluster]
root      14608  10859  0 22:07 pts/0    00:00:00 ./redis-cli -h 127.0.0.1 -p 7001 -c
root      15324      1  0 22:19 ?        00:00:00 ./redis-server *:7008 [cluster]
root      15333  11693  0 22:19 pts/1    00:00:00 grep --color=auto redis

执行添加节点的命令:

[root@bigdata01 bin]# ./redis-cli --cluster add-node 192.168.52.50:7008 192.168.52.50:7007 --cluster-slave --cluster-master-id 45ae324443605b2fde9460ebb7a2d05a5a8e1b31>>> Adding node 192.168.52.50:7008 to cluster 192.168.52.50:7007
>>> Performing Cluster Check (using node 192.168.52.50:7007)
>>> M: 45ae324443605b2fde9460ebb7a2d05a5a8e1b31 192.168.52.50:7007
>>> slots:[0-1332],[5461-6794],[10923-12255] (4000 slots) master
>>> M: 0936f3a083cbb4ad356d802be1dbf478a7af2e29 192.168.52.50:7002
>>> slots:[6795-10922] (4128 slots) master
>>> 1 additional replica(s)
>>> S: d5ccdab6de4f83c8e85d43e5718d6d35ff366687 192.168.52.50:7006
>>> slots: (0 slots) slave
>>> replicates 41bc4b5a6faac385a4558e587a488515ef41d3bb
>>> S: e3e167b42bedbeb0c2f48b80bcbecaa46ed9312d 192.168.52.50:7005
>>> slots: (0 slots) slave
>>> replicates 0936f3a083cbb4ad356d802be1dbf478a7af2e29
>>> M: 41bc4b5a6faac385a4558e587a488515ef41d3bb 192.168.52.50:7003
>>> slots:[12256-16383] (4128 slots) master
>>> 1 additional replica(s)
>>> S: 056b99be61907e85e6a6a6bc1bd9ebdc9f753032 192.168.52.50:7004
>>> slots: (0 slots) slave
>>> replicates 8d79947a54b87afdb9f190dbf76a49ae6fd85b40
>>> M: 8d79947a54b87afdb9f190dbf76a49ae6fd85b40 192.168.52.50:7001
>>> slots:[1333-5460] (4128 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.
>>> Send CLUSTER MEET to node 192.168.52.50:7008 to make it join the cluster.
>>> Waiting for the cluster to join>>> Configure node as replica of 192.168.52.50:7007.
>>> [OK] New node added correctly.

查看集群信息:

127.0.0.1:7001>  cluster nodes
45ae324443605b2fde9460ebb7a2d05a5a8e1b31 192.168.52.50:7007@17007 master - 0 1622730129000 7 connected 0-1332 5461-6794 10923-12255
41bc4b5a6faac385a4558e587a488515ef41d3bb 192.168.52.50:7003@17003 master - 0 1622730131000 3 connected 12256-16383
e3e167b42bedbeb0c2f48b80bcbecaa46ed9312d 192.168.52.50:7005@17005 slave 0936f3a083cbb4ad356d802be1dbf478a7af2e29 0 1622730130000 5 connected
8d79947a54b87afdb9f190dbf76a49ae6fd85b40 192.168.52.50:7001@17001 myself,master - 0 1622730130000 1 connected 1333-5460
d5ccdab6de4f83c8e85d43e5718d6d35ff366687 192.168.52.50:7006@17006 slave 41bc4b5a6faac385a4558e587a488515ef41d3bb 0 1622730131379 6 connected
056b99be61907e85e6a6a6bc1bd9ebdc9f753032 192.168.52.50:7004@17004 slave 8d79947a54b87afdb9f190dbf76a49ae6fd85b40 0 1622730132000 4 connected
1d59b9130a6b6e50718903602ff82d4a087a84b5 192.168.52.50:7008@17008 slave 45ae324443605b2fde9460ebb7a2d05a5a8e1b31 0 1622730132395 7 connected
0936f3a083cbb4ad356d802be1dbf478a7af2e29 192.168.52.50:7002@17002 master - 0 1622730131000 2 connected 6795-10922

8.JedisCluster连接Redis集群

代码如下所示:

package com.michealkz;import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPoolConfig;
import java.util.HashSet;
import java.util.Set;public class JedisClusterApp {public static void main(String[] args) {JedisPoolConfig config = new JedisPoolConfig();// 创建RedisHost的列表存储RedisHostSet<HostAndPort> jedisClusterNode = new HashSet<HostAndPort>();// 在本机搭建的伪分布式集群String hostName = "192.168.52.50";jedisClusterNode.add(new HostAndPort(hostName, 7001));jedisClusterNode.add(new HostAndPort(hostName, 7002));jedisClusterNode.add(new HostAndPort(hostName, 7003));jedisClusterNode.add(new HostAndPort(hostName, 7004));jedisClusterNode.add(new HostAndPort(hostName, 7005));jedisClusterNode.add(new HostAndPort(hostName, 7006));jedisClusterNode.add(new HostAndPort(hostName, 7007));jedisClusterNode.add(new HostAndPort(hostName, 7008));// 创建JedisCluster 客户端JedisCluster cluster = new JedisCluster(jedisClusterNode, config);// 调用客户端设置值cluster.set("cluster001", "hadoop001");System.out.println("set value success");String value = cluster.get("cluster001");// 调用客户端取出值并打印System.out.println("get cluster001 value is " + value);}
}

Redis-Cluster 搭建实践相关推荐

  1. Redis Cluster搭建方法简介22211111

    Redis Cluster搭建方法简介 (2013-05-29 17:08:57) 转载▼ Redis Cluster即Redis的分布式版本,将是Redis继支持Lua脚本之后的又一重磅功能,官方声 ...

  2. Redis高可用集群Redis Cluster搭建

    前言: Redis3.0版本之前,可以通过Redis Sentinel(哨兵)来实现高可用 ( HA ),从3.0版本之后,官方推出了Redis Cluster,它的主要用途是实现数据分片(Data ...

  3. 非常适合新手的redis cluster搭建过程

    Redis集群演进过程 Redis单节点 主从复制: 复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复. 故障恢复无法自动化:写操作无法负载均衡:存储能力受到单机的限制. 哨兵( ...

  4. 如何搭建socks5和ss节点_redis cluster搭建实践(非常详细,值得收藏)

    一.Redis Cluster(Redis集群)简介 redis是一个开源的key value存储系统,受到了广大互联网公司的青睐. redis集群采用P2P模式,是完全去中心化的,不存在中心节点或者 ...

  5. redis cluster搭建

    环境: 搭建环境为centos7,有外网 IP                           实例端口 192.168.8.28      7000.7001.7002 192.168.8.29 ...

  6. Redis Cluster 介绍与搭建

    1. Redis Cluster介绍 Redis Cluster是Redis的分布式解决方案,在Redis 3.0版本正式推出的,有效解决了Redis分布式方面的需求.当遇到单机内存.并发.流量等瓶颈 ...

  7. Redis Cluster深入与实践(续)

    前文回顾 上一篇文章基于redis的分布式锁实现写了基于redis实现的分布式锁.分布式环境下,不会还使用单点的redis,做到高可用和容灾,起码也是redis主从.redis的单线程工作,一台物理机 ...

  8. redis cluster以及master-slave在windows下环境搭建

    一.redis cluster环境搭建: 1.了解Redis Cluster原理: 详细了解可参考:http://doc.redisfans.com/topic/cluster-tutorial.ht ...

  9. redis cluster中添加删除重分配节点例子

    redis cluster中添加删除重分配节点例子 作者:用户 来源:互联网 时间:2016-05-05 10:22:27 摘要: 本文讲的是redis cluster中添加删除重分配节点例子, re ...

  10. Redis Cluster集群的搭建与实践[转]

    Redis Cluster集群的搭建与实践 Redis Cluster集群 一.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper等,但从redis 3.0之后 ...

最新文章

  1. Scipy Lecture Notes学习笔记(一)Getting started with Python for science 1.2. The Python language
  2. 30分钟,让你彻底明白Promise原理
  3. matlab 霍特林变换,数字图像处理(第3版面向CS2013计算机专业规划教材)
  4. 机器人II(sdutoj2585)-JAVA
  5. DVWA学习(三)Brute Force(暴力破解)
  6. excel趋势线公式导出_Java 添加、读取、删除Excel中的图表趋势线
  7. vue.set的用法
  8. java里类包含对象对不对_Java类中的对象
  9. Juniper发展史
  10. 触摸屏与单片机通讯C语言程序,讲述如何实现单片机与触摸屏的通信
  11. 解决电脑双网卡不能同时连接内网和外网的问题
  12. Python Web 框架-Django day06
  13. 东大18秋计算机基础在线作业3,东大18秋学期《计算机应用基础》在线作业3.pdf...
  14. 7年python程序员总结 - Python学习方法和高手养成
  15. 宜早不宜晚,使用思维导图训练孩子的逻辑思维!
  16. 雷电模拟器Android obb,exagear模拟器obb数据包
  17. lisp语言cond和if套用_lisp语言入门
  18. 云计算基础概念——Iaas、PaaS、SaaS
  19. Win10家庭版 无法远程桌面连接的解决方案
  20. 百度地图自定义信息窗口样式

热门文章

  1. CH340 +Micro USB转串口 不能识别 不起振问题
  2. 7.7.3、下界通配符
  3. QT随机放1个1和七个2_天热了鸡蛋容易坏,不用放进冰箱,老农教你1招,放2个月还新鲜...
  4. 剑门高级中学2021年高考成绩查询,剑门关高级中学2021年高中部入学条件是什么?...
  5. 修改了svn服务器配置,配置http方式访问svn服务器
  6. html5手机拍照上传
  7. 大数据产业中的新方式:数据交易
  8. 反脆弱性对产业生态的启发
  9. 【科技素养题】少儿编程 蓝桥杯青少组科技素养题真题及解析第17套
  10. iqc工作职责和工作内容_iqc是什么意思 iqc的工作职责是什么