Redis linux - 集群(经典3主3从)

                Redis linux - 集群(经典3主3从)

  • 前言
    • 每个节点知道彼此之间的关系,也会知道自己的角色,当然它们也会知道自己存在于一个集群环境中,它们彼此之间可以交互、通信,比如:ping请求,pong响应。这些关系都会保存到某个配置文件中,每个节点都有,在搭建集群服务的时候配置
    • 客户端需要和集群建立连接,只需要与其中一个建立连接关系就可以
    • 某个节点挂掉,也是通过超过半数的节点进行检测确认的结果,客观下线后主从切换,与哨兵模式主从切换一个逻辑
    • Redis中存在很多插槽,又称之为槽节点,用于存储数据,集群最多节点也是与槽节点有关
  • 集群容错
    • 构建Redis集群,需要至少6个节点,master*3,slave*3,以此组成高可用集群,称之为经典集群3主3从,容错性更加
    • 可以理解为3主3从6哨兵
  • 配置文件
# 开启集群模式
cluster-enabled yes
# 每一个节点需要有一个配置文件,需要6份。每个节点处于集群的角色都需要告知其他所有节点,彼此知道,这个文件用于存储集群模式下的集群状态等信息,这个文件是由redis自己维护,我们不用管。如果你要重新创建集群,那么把这个文件删了就行
cluster-config-file nodes-201.conf
# 超时时间,超时则认为master宕机,随后主备切换,具体时间根据当前网络与服务器配置调试,这里建议12000
#时间短容易误判,时间就容易集群瘫痪
cluster-node-timeout 12000
# 开启AOF
appendonly yes
#主备切换认证密码,与master密码(requirepass)保持一致
masterauth <密码>
  • 查看帮助文档        
    • redis-cli --cluster help

  • redis客户端中执行命令
    • 注意1:如果你使用的是redis3.x版本,需要使用redis-trib.rb来构建集群,最新版使用C语言来构建了,这个要注意
    • 注意2:以下为新版的redis5.x构建方式
    • 注意3:集群权限密码统一
    • 注意4:启动前,工作空间内的用于单实例哨兵模式持久化文件(rdb、aof)会影响集群,删除处理
    • redis-cli -a 密码 --cluster create ip1:port1 ip2:port2 ip3:port3 ip4:port4 ip5:port5 ip6:port6 --cluster-replicas 1
      • 没有设置密码可以省略 -a 密码
      • 创建集群,主节点和从节点比例为1,1-3为主,4-6为从,1和4,2和5,3和6分别对应为主从关系,这也是最经典用的最多的集群模式
      • 最后的‘1’表示mater与slave分配比例
      • 会默认分配主从关系,一般yes即可

  • 检查集群信息
    • redis-cli -a <密码> --cluster check ip:port

  • 访问redis集群
    • redis-cli -c -a < 密码> -h <IP> -p <端口>

  •  查看集群信息
    • CLUSTER INFO

  •  查看节点信息
    • CLUSTER NODES

  • 测试数据存储
    • 在192.168.213.134从节点存储数据,会自动切换到对应的主节点192.168.213.131操作
    • 192.168.213.131查看所有key,是可以看到刚刚存储的key(a),但是切换到192.168.213.129上又查不到key(a)--插槽存储
    • 192.168.213.129获取key(a)会自动切换到192.168.213.131获取数据-集群获取

  •  测试
    • 当从节点宕机,集群正常运行
    • 当主节点宕机,会把关联这个主节点的从节点其中之一通过选举,提升为主节点继续工作
    • 存储为插槽式存储,当前节点获取全部key,只能获取存储在当前节点的数据,获取指定key则可以切换节点获取
    • 当宕机的原master节点恢复后,自动归队,归属于原从节点提升后成为主节点的从节点

  • 槽节点
    • 共有16384个槽节点,会根据master总数平均分配
    • 存储方式是根据key与16384求余,计算数据存储于哪个master节点
    • 不在同一个节点的数据获取时,会自动切换节点,get keys 获取不到全部数据
  • 注意
    • 如果在核心配置文件(redis.conf)中如果没有配置masterauth 属性,则master节点宕机后关联的slave节点不能提升为新的master节点,导致集群瘫痪
    • cluster-node-timeout,健康检查超时时间,超时则认为master宕机,随后主备切换,具体时间根据当前网络与服务器配置调试,这里建议12000,时间短容易误判,时间就容易集群瘫痪
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值