redis架构模式以及各自特点
1、单机版
(1)架构图
(2)特点
a、架构简单,只要一个redis实例。
b、内存容量有限
c、处理能力有限
d、无法高可用(单机存在单点故障)
2、主从复制
Redis 的主从复制(replication)功能允许用户根据一个 Redis 服务器来创建任意多个该服务器的复制品,其中被复制的服务器为主服务器(master),而通过复制创建出来的服务器复制品则为从服务器(slave)。 只要主从服务器之间的网络连接正常,主从服务器两者会具有相同的数据,主服务器就会一直将发生在自己身上的数据更新同步(注意:只能是单方向同步,master向slave同步)给从服务器,从而一直保证主从服务器的数据相同。此架构模式中,客户端可以直接与slave交互,直接向slave获取数据,降低了master的读压力。
(2)特点
a、无法保证高可用(master仍然是单击,仍然存在单点故障)
b、没有降低master写压力,仅仅降低了master的读压力
3、哨兵模式(主从复制模式的升级版,加入了哨兵监控,保证了高可用)
Redis sentinel 是一个分布式系统,它可以监控 redis 主从服务器,并在主服务器下线时自动进行故障转移。其中三个特性:
监控(Monitoring):Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。
提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。
自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作。
(1)架构图
(2)特点
a、主从切换需要时间,可能会造成数据丢失
b、仍然没有降低master的读压力,仅仅降低了master的读压力
4、集群(直连型)
从redis 3.0之后版本支持redis-cluster集群,Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。
(1)架构图
(2)特点
a、无中心架构(不存在哪个节点影响性能瓶颈)。
b、数据按照 slot 存储分布在多个节点,节点间数据共享,可动态调整数据分布。
c、可扩展性,可线性扩展到 1000 个节点,节点可动态添加或删除。
d、高可用性,部分节点不可用时,集群仍可用。通过增加 Slave 做备份数据副本
e、实现故障自动 failover,节点之间通过 gossip 协议交换状态信息,用投票机制完成 Slave到 Master 的角色提升。
最后:
最近我整理了整套《JAVA核心知识点总结》,说实话 ,作为一名Java程序员,不论你需不需要面试都应该好好看下这份资料。拿到手总是不亏的~我的不少粉丝也因此拿到腾讯字节快手等公司的Offer
进[Java架构资源交流群] ,找管理员获取哦-!