<p>2024.6.23</p>
讯享网
1.Redis命令搭建集群指定主从关系使用cluster replicate命令
2.各节点在启动节点阶段是独立的,并没有建立联系
3.集群配置文件由Redis节点维护,不需要人工修改
4.当数据库中的16384个槽都分配了节点时,集群处于上线状态。
从服务器向主服务器发送SYNC(同步)请求。主服务器收到这个请求之后,(这个时候就不是单线程啦)开始生成RDB(快照文件),并且使用缓冲区记录之后所有的写操作命令。快照文件生成完毕之后,主服务器,向从服务器发送快照文件,这期间也继续记录执行过的写命令。从服务器接收快照文件完毕之后,丢弃旧数据,载入快照文件,主服务器此时向从服务器发送缓冲区中的写命令。
从服务器载入快照完毕之后,一方面开始执行主服务器后续的命令,一方面执行来自主服务器缓冲区的命令。
最后初始化完成了,主服务器每次收到写命令,向从服务器发送相同的写命令,从服务器执行。
从服务器帮主服务器分担了很多读操作的负载。写操作依旧由主服务器完成,再进行同步。
同时,从服务器也可以接收其他从服务器的连接和同步请求,也是为主服务器分忧。
没有自动容错和恢复功能。主机或者从机宕机都会造成前端部分的读写请求失败,需要手动重启或者更换前端的IP。
Redis在线扩容比较困难。
2024.6.23
1.读写分离,数据备份,无法进行故障转移
2024.6.26
1.如果从节点保存的runid与主节点现在的runid不同,说明从节点在断线前同步的Redis节点并不是当前的主节点,只能进行全量复制
2.通过info Server命令,可以查看节点的服务器运行ID(runid)
3.复制偏移量(offset)代表主节点向从节点传递的字节数
4.复制积压缓冲区的作用是备份主节点最近发送给从节点的数据
5.主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式
6.存储能力受到单机的限制
1.监控主、从服务器是否正常工作。
2.主服务器出现故障自动将从服务器升级为主服务器。
每个Sentinel(进程)以每秒一次的频率向整个集群中的主服务器、从服务器和其他哨兵发送PING请求。如果说一个实例在设置时间之内没有返回响应,这个实例就会被该哨兵标记为主观下线。如果一个master被标记主观下线,那么监视它的所有哨兵都要去确认这个master对于自己来说是不是也处于主观下线的状态。如果有一定数量的哨兵都将这个master标记为主观下线了,那么这个master会被标记为客观下线。
一旦有master被标记为客观下线,那么哨兵向该master的所有从服务器以每秒1次的频率发送info命令。如果没有足够的哨兵同意master服务器下线,那么客观下线标记会被移除。若master重新给哨兵的PING返回了有效回复,那么主观下线标记也被移除。
哨兵模式基于主从模式,主从模式的优点哨兵模式都有。

还是在线扩容比较难。
2024.6.23
1.主从+哨兵,从节点只读,可故障转移
简单来说就是每台Redis服务器上存储不同的内容,大大节约了内存。Redis-Cluster采用无中心结构特点如下:
1.所有的Redis节点彼此互联(通过PING-PONG机制)。
2.内部使用二进制协议优化传输速度和带宽。
3.一个节点的fail是通过集群中半数以上的节点都检测到失效才生效的。
4.客户端和Redis节点直接相连,不需要中间件代理层。
5.客户端只需要连接Redis的任意一个结点即可,不需要连接集群中的全部节点。
每个节点上都有一个哈希槽,取值范围是0-16383。还有一个集群管理插件cluster。当我们存取的key到达的时候,Redis会根据CRC16算法得出一个结果,然后把结果对16384求余数,这样每个key都可以获取一个编号在0-16383之间的哈希槽,通过这个值,我们去找对应的Redis节点,在这个节点上进行存取操作。
2024.6.23
1.在哨兵模式基础上解决了单机内存大小限制问题

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/144484.html