美文网首页
redis集群

redis集群

作者: 宋song一 | 来源:发表于2021-02-22 20:26 被阅读0次

    redis集群三种方式
    超过20g内存,建议集群

    1. 主从复制

    利用“SLAVEOF NO ONE 不会丢弃同步所得数据集”这个特性,可以在主服务器失败的时候,将从属服务器用作新的主服务器,从而实现无间断运行


    在这里插入图片描述

    实现方式:slaveof命令(从机使用),配置
    主从复制依赖rdb


    在这里插入图片描述 在这里插入图片描述

    maxmemory 分片不宜过大


    在这里插入图片描述
    • 复制风暴
      主节点重启后,从节点同步问题


      在这里插入图片描述

    2. sentinel

    sentinel 不存储数据,监控主从节点. 自动故障转移
    sentinel.conf

    #2,指明当有多少个sentinel认为一个master失效时,master才算真正失效。
    sentinel monitor mymaster 127.0.0.1 6379 2
    # 除了第一行,其他配置的通用格式 sentinel [option_name] [master_name] [option_value]
    
    sentinel down-after-milliseconds mymaster 60000 
    # sentinel会向master发送心跳PING来确认master是否存活,如果master在“一定时间范围”内不回应PONG 或者是回复了一个错误消息,那么这个sentinel会主观地认为这个master已经不可用了。而这个down-after-milliseconds就是用来指定这个“一定时间范围”的,单位是毫秒。
    
    sentinel failover-timeout mymaster 180000
    # sentinel执行failover超过设置时间时会被认为失败。将由其他sentinel继续执行failover,单位毫秒
    
    sentinel parallel-syncs mymaster 1
    # 在发生failover主从切换时,这个选项指定了最多可以有多少个slave同时对新的master进行同步,这个数字越小,完成主从故障转移所需的时间就越长,但是如果这个数字越大,就意味着越多的slave因为主从同步而不可用。可以通过将这个值设为1来保证每次只有一个slave处于不能处理命令请求的状态。
    
    在这里插入图片描述

    启动

       # 方式1
       redis-server s:/redis/sentinel/sentinel.conf --sentinel
       # 方式2,需要有redis-sentinel程序才行,该程序可以从redis源码中拷贝
       redis-sentinel s:/redis/sentinel/sentinel.conf
    

    3. cluster

    4. 缓存问题

    服务高可用
    穿透:缓存未命中,穿透到底层数据库
    击穿:一点超时,大并发击穿到底层数据库
    击穿是访问一个key,雪崩是redis的数据大批量消失(雪崩:缓存集体过期,或者Redis宕机)

    • 缓存穿透解决--:布隆过滤器,缓存空对象


      布隆过滤器.png

      缓存空对象可能出现的问题:


      image.png
    • 缓存击穿解决:设置热点数据永不过期,加互斥锁


      image.png

    缓存雪崩解决:redis高可用(异地多活),限流降级,数据预热


    image.png

    相关文章

      网友评论

          本文标题:redis集群

          本文链接:https://www.haomeiwen.com/subject/efikfltx.html