• 技术文章 >数据库 >Redis

    总结分享之Redis三种集群模式

    WBOYWBOY2022-08-31 17:54:38转载740

    php入门到就业线上直播课:进入学习

    推荐学习:Redis视频教程

    三种集群模式

    一、主从复制

    redis主从复制

    1、reids主从模式

    2、redis复制原理

    redis 的复制分为两部分操作 同步(SYNC)和 命令传播(command propagate)

    3、redis主从复制原理

    上面介绍了redis复制的两种操作,而redis得主从复制正式基于 同步 和 命令传播 来实现得。下面两张图展示了redis复制的流程:

    4、redis主从复制优缺点

    优点:

    1、实现读写分离,提高了可用性,解决了单机故障2、主从复制期间master和slave都是非阻塞方式,仍然可用。

    缺点:

    1、master宕机期间,需要手动切换主机,同时会有部分数据不能及时同步从服务器,造成数据不一致(需要人工手动介入)

    2、slave宕机后,多个slave恢复后,大量的SYNC同步会造成master IO压力倍增(可以手动规避启动时间)

    3、在线扩容较复杂。

    总结:

    redis主从复制的优点主要是提高了可用性缺点

    二、Sentinel 哨兵模式

    Sentinel 哨兵Sentinel 哨兵介绍

    Sentinel 哨兵本质上是一个运行在特殊模式下的Redis实例,只是初始化的过程和工作与普通的Redis不同,本质上也是一个单独的进程。

    Sentinel 哨兵 是Redis的高可用解决方案:一个或多个Sentinel实例(instance)组成的Sentinel系统(system)可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在主服务器下线时可以自动切换从服务器升级为主服务器。

    1、Sentinel系统

    下图是一个简单的Sentinel系统架构图,一个Sentinel系统监视一个主从集群,其中server1是Redis主服务器,server2/3/4是Redis 从服务器。主从之间利用上面的主从复制来达到主从一致。而Sentinel系统监视整个主从集群。

    2、Sentinel故障转移

    当Sentinel系统察觉到Server1主服务器下线时,就会终止server2/3/4的复制。

    同时Sentinel将server2升级为主服务器,server3/4从新的主服务器进行复制。同时等待server1的再次上线。

    Sentinel系统也可以主动降级主服务为从服务器,将从服务器升级为主服务器。

    2.1、Sentinel 哨兵监控过程

    Sentinel 哨兵监控集群过程:

    2.2、Sentinel 哨兵故障转移

    Sentinel 故障转移:

    3、Sentinel 哨兵优缺点

    优点:

    1、哨兵模式基于主从复制,因此主从复制的优点哨兵都具备2、哨兵具备了主从切换和故障转移,因此集群有了更高的可用性

    缺点:

    1、Redis较难支持在线扩容,在线扩容比较复杂。

    总结:
    sentinel 哨兵主要用来监控redis主从集群,提高了redis 主从集群的可用性。

    三、cluster 模式

    redis cluster

    1、reids cluster

    Redis Cluster是一种服务器 Sharding 技术,redis 3.0版本开始正式提供。
    Sentinel基本已经实现了高可用,但是每台机器都存储相同内容,很浪费内存,所以Redis Cluster实现了分布式存储。每台机器节点上存储不同的内容。

    2、Redis Cluster 数据分片原理

    redis 数据分片使用的是hash slot, redis集群有16384个哈希槽,每个Key通过CRC16校验后对16384取模来决定放置哪一个槽。
    当存取redis key时候,redis会根据CRC16算法得到一个结果,然后把结果和16384求余,通过这个值去对应得节点获取数据。
    这个时候,应用客户端实际上只需要连接其中任意一个节点即可,然后Redis Cluster 中每个节点都保存了其他节点得槽信息。这样当存取key计算完槽之后,通过保存槽信息从配置中获取节点信息,然后再去对应得节点获取数据。

    3、Redis Cluster 复制原理

    redis-cluster集群引入了主从复制模型,一个主节点对应一个或者多个从节点,当主节点宕机的时候,就会启用从节点。当其它主节点 ping 一个主节点 A 时,如果半数以上的主节点与 A 通信超时,那么认为主节点 A 宕机了。如果主节点 A 和它的从节点 A1 都宕机了,那么该集群就无法再提供服务了

    推荐学习:Redis视频教程

    以上就是总结分享之Redis三种集群模式的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:脚本之家,如有侵犯,请联系admin@php.cn删除

    千万级数据并发解决方案(理论+实战):点击学习

    Mysql单表千万级数据量的查询优化与性能分析

    Mysql主从原理及其在高并发系统中的应用

    专题推荐:redis
    上一篇:Redis设置生存和过期时间的原理分析 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• docker上支持安装redis吗• Redis的内存淘汰策略和过期删除策略的区别• 聊聊ThinkPHP6中如何使用Redis• 简单聊聊Redis处理接口幂等性的两种方案• 原因分析之redis缓存延时双删
    1/1

    PHP中文网