集群架构
集群就是使用网络将若干台计算机联通起来,并提供统一的管理方式,使其对外呈现单机的服务效果
集群作用
分散单台服务器的访问压力,实现负载均衡
分散单台服务器的存储压力,实现可扩展性
降低单台服务器宕机带来的业务灾难
Redis集群结构设计
数据存储设计
通过算法设计,计算出key应该保存的位置
将所有的存储空间计划切割成16384份,每台主机保存一部分
每份代表的是一个存储空间,不是一个key的保存空间
将key按照计算出的结果放到对应的存储空间
![](https://img-blog.csdnimg.cn/img_convert/03da07efaccd4c0b0284ee4c92a483f7.png)
添加新的节点 会从原来节点获取一部分空间
![](https://img-blog.csdnimg.cn/img_convert/4a98362f88972959119960a59ce023e6.png)
集群内部通讯设计
![](https://img-blog.csdnimg.cn/img_convert/a4c8558bbaa7b3f2310a1823e1828cac.png)
保证最多两次命中
Cluster集群结构搭建
搭建方式
原生安装(单条命令)
配置服务器(3主3从)
建立通信(Meet)
分槽(Slot)
搭建主从(master-slave)
工具安装(批处理)
Cluster配置
添加节点
cluster-enabled yes|no
cluster配置文件名,该文件属于自动生成,仅用于快速查找文件并查询文件内容
cluster-config-file <filename>
节点服务响应超时时间,用于判定该节点是否下线或切换为从节点
cluster-node-timeout <milliseconds>
master连接的slave最小数量
cluster-migration-barrier <count>
![](https://img-blog.csdnimg.cn/img_convert/b28a16d2a2bb1c625c46b34cf3ec7d73.png)
Cluster节点操作命令
查看集群节点信息
cluster nodes
进入一个从节点 redis,切换其主节点
cluster replicate <master-id>
发现一个新节点,新增主节点
cluster meet ip:port
忽略一个没有solt的节点
cluster forget <id>
手动故障转移
cluster failover
Cluster集群结构搭建
![](https://img-blog.csdnimg.cn/img_convert/38e4fbf34e2f11923474d8d16e31809b.png)
redis-trib命令
添加节点
redis-trib.rb add-node
删除节点
redis-trib.rb del-node
重新分片
redis-trib.rb reshard