• Redis_主从+哨兵集群


     redis_主从复制-读写分离

      主从架构开始第一次 全量把数据通过rdb到从节点,后续是AOF日志追加数据 简单的主节点挂了需要手动改代码连接到子节点

      防止数据不一致,从节点只能读 不能写

      一主一从,一主多从,树状主从

    redis_哨兵模式

      1.主从要主动改代码切换节点,哨兵自动切换,Redis自带哨兵功能

      2.其实就是单独出来1个线程监听主从架构(使用redis的发布订阅模式来哨兵和主从节点互相通信), 官方推荐哨兵的节点最少是3台,并且是单数防止平票

      3.宕机的情况,主观宕机:单独的哨兵认为你宕机了则认为你发生了故障

            客观宕机:半数的哨兵认为主节点宕机,就是发生了故障

      4.选举主节点的规则:1.健康度:从节点响应的时间,2.完整性:从节点备份数据的完整型,根据数据备份的偏移量,如果越高代表备份数据越完整3.稳定性,根据启动周期,心跳检测,就是哨兵和从节点之间的互动。4.如果上面三个都相等,则根据节点的启动时分配的runid来,runid越小则最优先选择

      a.偏移量计算,选举主节点公式

      5.脑裂现象:出现了主节点和哨兵之间的网络波动,而且多数哨兵认为主节点宕机,则会从现在的节点选为1个主节点,这个时候客户端还是连接之前的主节点,继续往之前主节点写数据,此时哨兵选举了新的主节点,但是网络又突然好了,于是造成了数据不一致

      客户端写12345数据往主A节点, 哨兵和主节点网络波动,选了新的主B,主B的数据写了1234567,但是网络又好了,于是主A的数据备份到已经变为子节点的主b 。造成数据不一致

      6.异步复制数据丢失问题:主和子节点复制数据太慢,然后宕机了,这个时候从节点变成主节点。造成数据丢失

    redis_集群原理

      1.副本复制的集群-多个节点都可以读写,且数据一致,kafka使用的就是这种-这种需要解决数据一致性问题

      2.redis采用的是分片模式-每个节点只负责一部分的数据读写

      1.数据书否分配均匀

      2.数据节点增删对数据分布影响不能太大-性能问题

    redis集群分配规则是-按数据槽

    怎么分配哈希槽-哈希取余:  redis用的是哈希环 先哈希,如果计算哈希得到哈希槽为1,则吧数据放在哈希环上1-2之间的虚拟节点 有固定的16384个哈希槽点

  • 相关阅读:
    vue3.0 sync属性变化
    webRTC技术
    Vue3不支持eventBus
    远程连接MySQL数据库报错:is not allowed to connect to this MYSQL server的解决办法
    基于node.js实现前端web项目自动化部署
    SH 远程连接 Windows 服务器
    七牛云使用之配置域名CNAME
    基于python win32setpixel api 实现计算机图形学相关操作
    [JavaScript闭包]Javascript闭包的判别,作用和示例
    将exe程序添加到服务的命令
  • 原文地址:https://www.cnblogs.com/LZXX/p/16367533.html
Copyright © 2020-2023  润新知