【Redis】集群

什么是集群

集群就是使用网络将若干台计算机连接到一起,并且提供同一的管理方式,使其对外呈现单机的服务效果。

集群作用

  • 分散单台服务器的访问压力,实现负载均衡
  • 分散单台服务器的存储压力,实现可扩展性
  • 降低单台服务器宕机带来的灾难性的影响

Redis集群结构设计

Redis会将所有的服务器的存储空间等分切割为16384份,切割后的每一个空间称之为一个槽
当需要存储数据时,首先将该数据通过RCR16(循环冗余校验)生成的值与16384取模,得到结果
按照key计算得到的结果,存储至对应的槽中
当有新的服务器加入或是有服务器退出时,已存在服务器将自己的槽位分享给新机器或是退出服务器将其所持有的槽位分享给剩余机器。
在这里插入图片描述

集群内部通讯设计

  • 当搭建好集群后,所有服务器将会建立连接互相通信,记录各个库中槽的编号数据

  • 当有数据进入,如果第一次访问到的计算机直接命中,则返回数据

  • 如果所需存储数据不在第一次访问的计算机中,则返回所在计算机位置,通过该位置访问获取数据

  • 结论:最多两次可以命中数据

集群搭建

  • 配置文件
cluster-enabled yes|no				//启动cluster集群,称为集群中的一个节点
cluster-config-file <filename>		//启动配置文件位置
cluster-node-time <milliseconds>	//超时时间,单位为毫秒数
cluster-migartion-barrier <count>	//master连接slave的最小数量
  • 启动集群方式
redis-trib.rb create --replicas 数字 master的ip:port ... slave的ip:port ...
//replicas用于指定内部结构,数字表示一个master对应几个slave

连接至集群方式

redis-cli -c 		//以集群方式启动客户端
主从下线与主从切换

当从机下线后,对应的主机发送信息标记从机下线
主机下线后,从机多次连接失败,进行故障转移,产生新的master,并标记原有master状态为fail,当原先master上线,自动转换为slave

  • cluster节点操作命令
cluster nodes					//查看集群节点信息
cluster replicate <master-id>	//切换主节点
cluster meet ip:port			//新增主节点
cluster forget <id>				//忽略一个没有solt的节点
cluster failover				//手动故障转移
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程芝士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值