redis的cluster

c 复制代码
1.我们的哨兵模式中,当主节点挂掉以后,此时哨兵会重新进行选举,选举出新的主节点去对外提供写服务
在选举的过程中,他redis整个集群是不提供写服务的 (因为此时我们哨兵对外提供写服务的只有Master)
2.我们单节点的redis的内存不能过大,可能8G,10G 如果过大的话,他持久化的以及数据同步的时候就会有压力
所以这个就是哨兵的弊端,基于哨兵的弊端 我们有了cluster模式
他的数据是分片的
c 复制代码
我们此时搭建这么一个redis集群,redisCluster 他的数据是进行分片存储的


c 复制代码
不同的微服务搞一个小的redis集群  比如说用户用用户的redis集群
redis集群中至少要有3个主节点,每个主节点配置3个从节点,3主3从,6台机器
主节点会分配槽位


c 复制代码
一共分配16384个槽位,此时是基于CRC16算法定位数据,我们可以用cluster Info 来查看redis集群的信息  目前来看 他的cluster_size 长度是3
c 复制代码
集群关键信息  clusterNodes  这个是集群的6台信息
c 复制代码
主从架构我们集群的信息 他会写进配置文件中
c 复制代码
集群搭建好了,他会根据你的key计算 用crc16算法来计算 看这个key会在那个节点上
分片定位算法
c 复制代码
元数据信息  比如说我新加一个机器 或者说主节点挂了 在redis中这些信息是通过goosp告诉其他节点的
对于元数据的维护 我们还可以通过zk来进行管理  比如说dubbo kafka之列的
他吧元数据信息维护在zk中,把我们的客户端信息注册在zk中
只要存储元数据的地方发生变化 所有客户端都能够访问到最新的

goosp点对点 慢慢通知的这种情况 通知是要花费时间的
如果你的集群节点搞的太多 内网集群变动的话 内部心跳通知什么的 会很耗时

现在都是微服务架构,一个为微服务或者几个微服务公用一个redis集群,每个redis集群可能就几个主节点  每个主节点配置呢么1到2个从节点。他不会搞太多机器,因为集群的变动的话,redis内部是通过goosp协议点对点的通知的, 他会很耗时

redis 默认是一个Ap架构 更多的是保证你的可用性
Zk保证是绝对的一致性
c 复制代码
redis的集群选举分析原理 当master挂掉以后,会进行多个slave进行选举,选举就会有过半机制
c 复制代码
集群脑裂问题的解决方案 (过半机制)
相关推荐
♡喜欢做梦34 分钟前
MyBatis XML 配置文件:从配置规范到 CRUD 开发实践
xml·java·java-ee·mybatis
TDengine (老段)35 分钟前
TDengine IDMP 重塑智慧水务运营(内附 Step by Step 步骤)
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
爱吃烤鸡翅的酸菜鱼37 分钟前
Spring Boot 实现 WebSocket 实时通信:从原理到生产级实战
java·开发语言·spring boot·后端·websocket·spring
J不A秃V头A38 分钟前
Maven的分发管理与依赖拉取
java·maven
LSL666_4 小时前
1 概述及简单登录(不涉及数据库)
数据库·servlet
一只会写代码的猫4 小时前
面向高性能计算与网络服务的C++微内核架构设计与多线程优化实践探索与经验分享
java·开发语言·jvm
萤丰信息5 小时前
智慧园区能源革命:从“耗电黑洞”到零碳样本的蜕变
java·大数据·人工智能·科技·安全·能源·智慧园区
曹牧5 小时前
Eclipse为方法添加注释
java·ide·eclipse
我叫张小白。6 小时前
Spring Boot拦截器详解:实现统一的JWT认证
java·spring boot·web·jwt·拦截器·interceptor
q***06477 小时前
MySQL的UPDATE(更新数据)详解
数据库·mysql