【愚公系列】2022年05月 .NET架构班 055-分布式中间件 Redis集群的搭建

举报
愚公搬代码 发表于 2022/05/04 22:09:49 2022/05/04
【摘要】 前言redis-cluster要求至少需要3个master才能组成一个集群,同时每个master至少需要有一个slave节点。各个节点之间保持TCP通信。当master发生了宕机,redis-cluster自动会将对应的slave节点提拔为master,来重新对外提供服务。redis-cluster功能 : 负载均衡,故障切换,主从复制 。redis-cluster特点:所有redis节点...

前言

redis-cluster要求至少需要3个master才能组成一个集群,同时每个master至少需要有一个slave节点。各个节点之间保持TCP通信。当master发生了宕机,redis-cluster自动会将对应的slave节点提拔为master,来重新对外提供服务。
在这里插入图片描述

redis-cluster功能 : 负载均衡,故障切换,主从复制 。
redis-cluster特点:

  • 所有redis节点(包括主和从)彼此互联(两两通信),底层使用内部的二进制传输协议,优化传输速度;(所有功能特点的基础)。
  • 集群中也有主从,也有高可用的逻辑,但是没有哨兵进程,整合到主节点的功能里了;集群中的事件被主节点(大部分主节点);通过主节点的过半选举实现哨兵以前的逻辑。
  • 客户端与redis-cluster连接,无需关心分片的计算,客户端不在关心分片的计算逻辑,内部分发分布式数据(内部有分片计算逻辑),客户端将key交给redis节点后,集群内部判断key值的正确存储位置,转发存储。
  • redis-cluster把所有的主节点对应到[0-16383]整数区间–槽道slot;各自的主节点维护一批槽道号(0-5000,5001-10000,10001-16383);在分片计算时,对key值做hash取模运算(就是取余,不在使用hashCode,CRC16);key值对应的取模运算结果,将会判断由哪个节点维护;将key–slot–node,如果我们想要迁移某个key值,必须将对应的slot一并迁移。

一、redis-cluster集群配置

1.在redis中创建6个配置文件

在这里插入图片描述

​ 1.1 在redis.6380.conf文件中,添加内容

port 6380
bind 127.0.0.1        
appendonly yes
appendfilename "appendonly.6380.aof"   
cluster-enabled yes                                    
cluster-config-file nodes.6380.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes

​ 1.2 在redis.6381.conf文件中,添加内容

port 6381
bind 127.0.0.1        
appendonly yes
appendfilename "appendonly.6381.aof"   
cluster-enabled yes                                    
cluster-config-file nodes.6381.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes

​ 1.3 在redis.6382.conf文件中,添加内容

port 6382
bind 127.0.0.1        
appendonly yes
appendfilename "appendonly.6382.aof"   
cluster-enabled yes                                    
cluster-config-file nodes.6382.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes

​ 1.4 在redis.6383.conf文件中,添加内容

port 6383
bind 127.0.0.1        
appendonly yes
appendfilename "appendonly.6383.aof"   
cluster-enabled yes                                    
cluster-config-file nodes.6383.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes

​ 1.5 在redis.6384.conf文件中,添加内容

port 6384
bind 127.0.0.1        
appendonly yes
appendfilename "appendonly.6384.aof"   
cluster-enabled yes                                    
cluster-config-file nodes.6380.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes

​ 1.6 在redis.6385.conf文件中,添加内容

port 6385
bind 127.0.0.1        
appendonly yes
appendfilename "appendonly.6385.aof"   
cluster-enabled yes                                    
cluster-config-file nodes.6385.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes

2.启动6个redis实例

2.1 启动 redis.6380.conf

redis-server.exe redis.6380.conf

2.2 启动 redis.6381.conf

redis-server.exe redis.6381.conf

2.3 启动 redis.6382.conf

redis-server.exe redis.6382.conf

2.4 启动 redis.6383.conf

redis-server.exe redis.6383.conf

2.5 启动 redis.6384.conf

redis-server.exe redis.6384.conf

2.6 启动 redis.6385.conf

redis-server.exe redis.6385.conf

二、redis-cluster主从角色分配

1.ruby环境安装

​ 1.1 ruby环境下载:

http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.2.4-x64.exe

​ 1.2 ruby安装,双击安装

在这里插入图片描述

2.redis-3.2.2.gem文件安装

​2.1 redis-3.2.2.gem下载地址:

https://rubygems.org/gems/redis/versions/3.2.2

​2.2 进入到Ruby22-x64目录中

在这里插入图片描述

​ 2.3 通过gem命令文件安装

gem install –local D:\work\net\redis\redis-cluster\redis-3.2.2.gem

在这里插入图片描述

3.redis-trib.rb搭建redis-cluster主从

​​ 3.1 redis-trib.rb下载地址:

https://github.com/beebol/redis-trib.rb

​​ 3.2 redis-trib.rb使用

​ 进入到redis-trib.rb目录中
在这里插入图片描述
​ 通过cmd使用redis-trib.rb
在这里插入图片描述

3.3 redis-trib.rb开始搭建

ruby redis-trib.rb create –replicas 1 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385

在这里插入图片描述

3.4 redis-trib.rb redis-cluster集群状态检查

ruby redis-trib.rb check 127.0.0.1:6380

在这里插入图片描述

3.4 .NET Core连接集群

//services.AddDistributedRedisCache("192.168.44.4:6379");
services.AddDistributedRedisCache("127.0.0.1:6370,127.0.0.1:6381,127.0.0.1:6382,127.0.0.1:6383,127.0.0.1:6384,127.0.0.1:6385");
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。