redis主从搭建(6台集群)
环境介绍
	系统:rocky9.2
	硬件配置:2核2G 80G硬盘
	IP地址:172.16.5.101-172.16.5.106
	已做免密认证
	
1.0批量安装redis
	[root@redis-1 ~]# for  i in {1..6}; do ssh -q 172.16.5.10$i yum install redis -y; done
	返回结果:
	上次元数据过期检查:2:28:55 前,执行于 2023年10月18日 星期三 00时33分20秒。
	依赖关系解决。
	================================================================================
	软件包         架构            版本                   仓库                大小
	================================================================================
	安装:
	redis          x86_64          6.2.7-1.el9            appstream          1.3 M
	
	事务概要
	================================================================================
	安装  1 软件包
	
	总下载:1.3 M
	安装大小:4.7 M
	下载软件包:
	redis-6.2.7-1.el9.x86_64.rpm                    1.6 MB/s | 1.3 MB     00:00    
	--------------------------------------------------------------------------------
	总计                                            633 kB/s | 1.3 MB     00:02     
	运行事务检查
	事务检查成功。
	运行事务测试
	事务测试成功。
	运行事务
	准备中  :                                                                 1/1 
	运行脚本: redis-6.2.7-1.el9.x86_64                                        1/1 
	安装    : redis-6.2.7-1.el9.x86_64                                        1/1 
	运行脚本: redis-6.2.7-1.el9.x86_64                                        1/1 
	验证    : redis-6.2.7-1.el9.x86_64                                        1/1 
	
	已安装:
	redis-6.2.7-1.el9.x86_64                                                      
	
	完毕!
	上次元数据过期检查:2:28:59 前,执行于 2023年10月18日 星期三 00时33分20秒。
	依赖关系解决。
	================================================================================
	软件包         架构            版本                   仓库                大小
	================================================================================
	安装:
	redis          x86_64          6.2.7-1.el9            appstream          1.3 M
	
	事务概要
	================================================================================
	安装  1 软件包
	
	总下载:1.3 M
	安装大小:4.7 M
	下载软件包:
	redis-6.2.7-1.el9.x86_64.rpm                    1.7 MB/s | 1.3 MB     00:00    
	--------------------------------------------------------------------------------
	总计                                            710 kB/s | 1.3 MB     00:01     
	运行事务检查
	事务检查成功。
	运行事务测试
	事务测试成功。
	运行事务
	准备中  :                                                                 1/1 
	运行脚本: redis-6.2.7-1.el9.x86_64                                        1/1 
	安装    : redis-6.2.7-1.el9.x86_64                                        1/1 
	运行脚本: redis-6.2.7-1.el9.x86_64                                        1/1 
	验证    : redis-6.2.7-1.el9.x86_64                                        1/1 
	
	已安装:
	redis-6.2.7-1.el9.x86_64                                                      
	
	完毕!
	上次元数据过期检查:2:29:02 前,执行于 2023年10月18日 星期三 00时33分20秒。
	依赖关系解决。
	================================================================================
	软件包         架构            版本                   仓库                大小
	================================================================================
	安装:
	redis          x86_64          6.2.7-1.el9            appstream          1.3 M
	
	事务概要
	================================================================================
	安装  1 软件包
	
	总下载:1.3 M
	安装大小:4.7 M
	下载软件包:
	redis-6.2.7-1.el9.x86_64.rpm                    1.8 MB/s | 1.3 MB     00:00    
	--------------------------------------------------------------------------------
	总计                                            713 kB/s | 1.3 MB     00:01     
	运行事务检查
	事务检查成功。
	运行事务测试
	事务测试成功。
	运行事务
	准备中  :                                                                 1/1 
	运行脚本: redis-6.2.7-1.el9.x86_64                                        1/1 
	安装    : redis-6.2.7-1.el9.x86_64                                        1/1 
	运行脚本: redis-6.2.7-1.el9.x86_64                                        1/1 
	验证    : redis-6.2.7-1.el9.x86_64                                        1/1 
	
	已安装:
	redis-6.2.7-1.el9.x86_64                                                      
	
	完毕!
	上次元数据过期检查:2:29:06 前,执行于 2023年10月18日 星期三 00时33分20秒。
	依赖关系解决。
	================================================================================
	软件包         架构            版本                   仓库                大小
	================================================================================
	安装:
	redis          x86_64          6.2.7-1.el9            appstream          1.3 M
	
	事务概要
	================================================================================
	安装  1 软件包
	
	总下载:1.3 M
	安装大小:4.7 M
	下载软件包:
	redis-6.2.7-1.el9.x86_64.rpm                    1.7 MB/s | 1.3 MB     00:00    
	--------------------------------------------------------------------------------
	总计                                            267 kB/s | 1.3 MB     00:04     
	运行事务检查
	事务检查成功。
	运行事务测试
	事务测试成功。
	运行事务
	准备中  :                                                                 1/1 
	运行脚本: redis-6.2.7-1.el9.x86_64                                        1/1 
	安装    : redis-6.2.7-1.el9.x86_64                                        1/1 
	运行脚本: redis-6.2.7-1.el9.x86_64                                        1/1 
	验证    : redis-6.2.7-1.el9.x86_64                                        1/1 
	
	已安装:
	redis-6.2.7-1.el9.x86_64                                                      
	
	完毕!
	上次元数据过期检查:2:29:12 前,执行于 2023年10月18日 星期三 00时33分20秒。
	依赖关系解决。
	================================================================================
	软件包         架构            版本                   仓库                大小
	================================================================================
	安装:
	redis          x86_64          6.2.7-1.el9            appstream          1.3 M
	
	事务概要
	================================================================================
	安装  1 软件包
	
	总下载:1.3 M
	安装大小:4.7 M
	下载软件包:
	redis-6.2.7-1.el9.x86_64.rpm                    1.7 MB/s | 1.3 MB     00:00    
	--------------------------------------------------------------------------------
	总计                                            269 kB/s | 1.3 MB     00:04     
	运行事务检查
	事务检查成功。
	运行事务测试
	事务测试成功。
	运行事务
	准备中  :                                                                 1/1 
	运行脚本: redis-6.2.7-1.el9.x86_64                                        1/1 
	安装    : redis-6.2.7-1.el9.x86_64                                        1/1 
	运行脚本: redis-6.2.7-1.el9.x86_64                                        1/1 
	验证    : redis-6.2.7-1.el9.x86_64                                        1/1 
	
	已安装:
	redis-6.2.7-1.el9.x86_64                                                      
	
	完毕!
	上次元数据过期检查:2:29:19 前,执行于 2023年10月18日 星期三 00时33分20秒。
	依赖关系解决。
	================================================================================
	软件包         架构            版本                   仓库                大小
	================================================================================
	安装:
	redis          x86_64          6.2.7-1.el9            appstream          1.3 M
	
	事务概要
	================================================================================
	安装  1 软件包
	
	总下载:1.3 M
	安装大小:4.7 M
	下载软件包:
	redis-6.2.7-1.el9.x86_64.rpm                    347 kB/s | 1.3 MB     00:03    
	--------------------------------------------------------------------------------
	总计                                            269 kB/s | 1.3 MB     00:04     
	运行事务检查
	事务检查成功。
	运行事务测试
	事务测试成功。
	运行事务
	准备中  :                                                                 1/1 
	运行脚本: redis-6.2.7-1.el9.x86_64                                        1/1 
	安装    : redis-6.2.7-1.el9.x86_64                                        1/1 
	运行脚本: redis-6.2.7-1.el9.x86_64                                        1/1 
	验证    : redis-6.2.7-1.el9.x86_64                                        1/1 
	
	已安装:
	redis-6.2.7-1.el9.x86_64                                                      
	
	完毕!
	
2.0修改默认的配置文件
	
	2.1修改默认的监听地址,默认是127.0.0.1修改成0.0.0.0
	[root@redis-1 ~]# vim /etc/redis/redis.conf
	原内容
	#bind 0.0.0.0 -::1
	改后
	bind 0.0.0.0
	
	2.2修改cluster-enabled 选项的值为 yes 表示将 Redis 实例设置成集群节点而不是单机服务器
	默认所有节点都是主节点
	[root@redis-1 ~]# vim /etc/redis/redis.conf
	原内容
	# cluster-enabled yes
	改后
	cluster-enabled yes
	
	[root@redis-1 ~]# vim /etc/redis/redis.conf
	默认所有节点都是主节点
	原内容
	# cluster-config-file nodes-6379.conf
	改后
	cluster-config-file cluster_info_6379.conf
	
	
	2.3拷贝redis配置文件到其他主机上面
	[root@redis-1 ~]# for i in {1..6}; do scp -q /etc/redis/redis.conf 172.16.5.10$i:/etc/redis/; done
	
	2.4启动所有的服务,并设置为开机自启动
	[root@redis-1 ~]# for i in {1..6}; do ssh -q 172.16.5.10$i  systemctl enable redis --now; done
	返回结果:
	Created symlink /etc/systemd/system/multi-user.target.wants/redis.service → /usr/lib/systemd/system/redis.service.
	Created symlink /etc/systemd/system/multi-user.target.wants/redis.service → /usr/lib/systemd/system/redis.service.
	Created symlink /etc/systemd/system/multi-user.target.wants/redis.service → /usr/lib/systemd/system/redis.service.
	Created symlink /etc/systemd/system/multi-user.target.wants/redis.service → /usr/lib/systemd/system/redis.service.
	Created symlink /etc/systemd/system/multi-user.target.wants/redis.service → /usr/lib/systemd/system/redis.service.
	
	2.5查看所有节点是不是都是master节点
	[root@redis-1 ~]# for i in {1..6}; do ssh -q 172.16.5.10$i  cat /var/lib/redis/cluster_info_6379.conf ; done
	返回结果:
	0556318499e4cd701d4bfbd9cd70fc40fd92281b :0@0 myself,master - 0 0 0 connected
	vars currentEpoch 0 lastVoteEpoch 0
	88afd0f6125f64b0165b63ed65a6ca6596aebc2a :0@0 myself,master - 0 0 0 connected
	vars currentEpoch 0 lastVoteEpoch 0
	bc65ceb59df276b878fc13eaccd05af3fa21e73c :0@0 myself,master - 0 0 0 connected
	vars currentEpoch 0 lastVoteEpoch 0
	5c591b2c62244cd0183afa78f22d1ccc8bcfc794 :0@0 myself,master - 0 0 0 connected
	vars currentEpoch 0 lastVoteEpoch 0
	24b4608c219e77187b758fc5a2bd9e85614b95ed :0@0 myself,master - 0 0 0 connected
	vars currentEpoch 0 lastVoteEpoch 0
	8b45e6bb962ab31ecc92cef3f0d6c5e8327eda8d :0@0 myself,master - 0 0 0 connected
	vars currentEpoch 0 lastVoteEpoch 0
	
	2.6创建集群命令帮助
	[root@redis-1 ~]# redis-cli --cluster help
	create 
		创建结群
		
	check
		检查集群
		
	info
		查看集群的详细信息
		
	fix
		集群修复
		
	reshard
		分片

	rebalance
		让集群一比一存储,雨露均沾
		
	add-node
		添加节点
		
	del-node
		删除节点
		
	2.7创建一主一从,也就是6台主机里面3台是主的3台是从的
	[root@redis-1 ~]# echo yes | redis-cli --cluster create 172.16.5.101:6379 172.16.5.102:6379 172.16.5.103:6379 172.16.5.104:6379 172.16.5.105:6379 172.16.5.106:6379 --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 172.16.5.105:6379 to 172.16.5.101:6379
	Adding replica 172.16.5.106:6379 to 172.16.5.102:6379
	Adding replica 172.16.5.104:6379 to 172.16.5.103:6379
	M: 0556318499e4cd701d4bfbd9cd70fc40fd92281b 172.16.5.101:6379
	slots:[0-5460] (5461 slots) master
	M: 88afd0f6125f64b0165b63ed65a6ca6596aebc2a 172.16.5.102:6379
	slots:[5461-10922] (5462 slots) master
	M: bc65ceb59df276b878fc13eaccd05af3fa21e73c 172.16.5.103:6379
	slots:[10923-16383] (5461 slots) master
	S: 5c591b2c62244cd0183afa78f22d1ccc8bcfc794 172.16.5.104:6379
	replicates bc65ceb59df276b878fc13eaccd05af3fa21e73c
	S: 24b4608c219e77187b758fc5a2bd9e85614b95ed 172.16.5.105:6379
	replicates 0556318499e4cd701d4bfbd9cd70fc40fd92281b
	S: 8b45e6bb962ab31ecc92cef3f0d6c5e8327eda8d 172.16.5.106:6379
	replicates 88afd0f6125f64b0165b63ed65a6ca6596aebc2a
	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 172.16.5.101:6379)
	M: 0556318499e4cd701d4bfbd9cd70fc40fd92281b 172.16.5.101:6379
	slots:[0-5460] (5461 slots) master
	1 additional replica(s)
	S: 24b4608c219e77187b758fc5a2bd9e85614b95ed 172.16.5.105:6379
	slots: (0 slots) slave
	replicates 0556318499e4cd701d4bfbd9cd70fc40fd92281b
	M: 88afd0f6125f64b0165b63ed65a6ca6596aebc2a 172.16.5.102:6379
	slots:[5461-10922] (5462 slots) master
	1 additional replica(s)
	M: bc65ceb59df276b878fc13eaccd05af3fa21e73c 172.16.5.103:6379
	slots:[10923-16383] (5461 slots) master
	1 additional replica(s)
	S: 5c591b2c62244cd0183afa78f22d1ccc8bcfc794 172.16.5.104:6379
	slots: (0 slots) slave
	replicates bc65ceb59df276b878fc13eaccd05af3fa21e73c
	S: 8b45e6bb962ab31ecc92cef3f0d6c5e8327eda8d 172.16.5.106:6379
	slots: (0 slots) slave
	replicates 88afd0f6125f64b0165b63ed65a6ca6596aebc2a
	[OK] All nodes agree about slots configuration.
	>>> Check for open slots...
	>>> Check slots coverage...
	[OK] All 16384 slots covered.
	
	解释:
	Master[0] -> Slots 0 - 5460
		0-5460存到第一个master节点
		
	Master[1] -> Slots 5461 - 10922
		5461-10922存到第二个master节点
		
	Master[2] -> Slots 10923 - 16383
		10923-16383存到三个master节点
	
	Adding replica 172.16.5.105:6379 to 172.16.5.101:6379
		172.16.5.105为主master
		172.16.5.101为slave
		
		
	Adding replica 172.16.5.106:6379 to 172.16.5.102:6379
		172.16.5.106为master
		172.16.5.105为slave
	
    Adding replica 172.16.5.104:6379 to 172.16.5.103:6379
		172.16.5.104为master
		172.16.5.103为slave
		
	2.8查看集群详细信息。集群中的任何一个节点都可以
	[root@redis-1 ~]# redis-cli --cluster info 172.16.5.101:6379
	172.16.5.101:6379 (05563184...) -> 0 keys | 5461 slots | 1 slaves.
	172.16.5.102:6379 (88afd0f6...) -> 0 keys | 5462 slots | 1 slaves.
	172.16.5.103:6379 (bc65ceb5...) -> 0 keys | 5461 slots | 1 slaves.
	[OK] 0 keys in 3 masters.
	0.00 keys per slot on average.

	2.9查看集群状态信息
	[root@redis-1 ~]# redis-cli --cluster check 172.16.5.101:6379
	返回结果:
	172.16.5.101:6379 (05563184...) -> 0 keys | 5461 slots | 1 slaves.
	172.16.5.102:6379 (88afd0f6...) -> 0 keys | 5462 slots | 1 slaves.
	172.16.5.103:6379 (bc65ceb5...) -> 0 keys | 5461 slots | 1 slaves.
	[OK] 0 keys in 3 masters.
	0.00 keys per slot on average.
	>>> Performing Cluster Check (using node 172.16.5.101:6379)
	M: 0556318499e4cd701d4bfbd9cd70fc40fd92281b 172.16.5.101:6379
	slots:[0-5460] (5461 slots) master
	1 additional replica(s)
	S: 24b4608c219e77187b758fc5a2bd9e85614b95ed 172.16.5.105:6379
	slots: (0 slots) slave
	replicates 0556318499e4cd701d4bfbd9cd70fc40fd92281b
	M: 88afd0f6125f64b0165b63ed65a6ca6596aebc2a 172.16.5.102:6379
	slots:[5461-10922] (5462 slots) master
	1 additional replica(s)
	M: bc65ceb59df276b878fc13eaccd05af3fa21e73c 172.16.5.103:6379
	slots:[10923-16383] (5461 slots) master
	1 additional replica(s)
	S: 5c591b2c62244cd0183afa78f22d1ccc8bcfc794 172.16.5.104:6379
	slots: (0 slots) slave
	replicates bc65ceb59df276b878fc13eaccd05af3fa21e73c
	S: 8b45e6bb962ab31ecc92cef3f0d6c5e8327eda8d 172.16.5.106:6379
	slots: (0 slots) slave
	replicates 88afd0f6125f64b0165b63ed65a6ca6596aebc2a
	[OK] All nodes agree about slots configuration.
	>>> Check for open slots...
	>>> Check slots coverage...
	[OK] All 16384 slots covered.
	
	2.10查看集群状态是否为ok,如果为ok说明服务正常启动
	[root@redis-1 ~]# redis-cli -c -h 172.16.5.102 -p 6379 CLUSTER INFO |grep cluster_state
	cluster_state:ok
	
	2.11查看每秒的读写请求数
	[root@redis-1 ~]# redis-cli -c -h 172.16.5.102 -p 6379 info | grep instantaneous_ops_per_sec:
	instantaneous_ops_per_sec:0

3.0写入key测试
	
	3.1单条数据插入
	[root@redis-1 ~]# echo 'hello_word' |redis-cli -c -p 6379 -h 172.16.5.105 -x set mykey
	OK
	
	3.2查看数据是否写入成功
	[root@redis-1 ~]# redis-cli -c -p 6379 -h 172.16.5.105 get mykey
	"hello_word\n"
	
	3.3查看刚才写入的key写到哪台服务器上面去了
	[root@redis-1 ~]# redis-cli --cluster info 172.16.5.105:6379
	172.16.5.101:6379 (05563184...) -> 0 keys | 5461 slots | 1 slaves.
	172.16.5.103:6379 (bc65ceb5...) -> 1 keys | 5461 slots | 1 slaves.
	172.16.5.102:6379 (88afd0f6...) -> 0 keys | 5462 slots | 1 slaves.
	[OK] 1 keys in 3 masters.
	0.00 keys per slot on average.
	
	解释:
	172.16.5.103:6379 (bc65ceb5...) -> 1 keys | 5461 slots | 1 slaves.
		这里可以看到,我往105写入的key,写到到103上面去了
		
	3.3写入一万条数据,做测试
	[root@redis-1 ~]# for i in `seq 1 10000`; do echo "helo_word_$i" | redis-cli -c -p 6379 -h 172.16.5.105 -x set "demo_$i"; done
	
	查看数据分布情况
	[root@redis-1 ~]# redis-cli --cluster info 172.16.5.105:6379
	172.16.5.101:6379 (05563184...) -> 3346 keys | 5461 slots | 1 slaves.
	172.16.5.103:6379 (bc65ceb5...) -> 3333 keys | 5461 slots | 1 slaves.
	172.16.5.102:6379 (88afd0f6...) -> 3322 keys | 5462 slots | 1 slaves.
	[OK] 10001 keys in 3 masters.
	0.61 keys per slot on average.
	
	













































	
	
	
	
	
	
	
	
	
	

	


本文 暂无 评论

Top