Redis架构模式
2021/4/16 19:27:14
本文主要是介绍Redis架构模式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Redis架构模式
前言
reids在工作中经常会被用到,它的存储效率要明显高于关系数据库(因为它的数据是存储在内存中的),除此之外还可以用来验证一些操作,分布式锁等。
那么有没有想过有一天所在的redis突然崩溃了,那该怎么办呢?
当然首先我们要尽量避免这种情况,但是什么事情都有万一 万一发生呢?
如果是只有一台redis服务器,那就等死 或者跑路吧,
如果不想这样的结果,就告知你的老板多备用几台服务器,否则会有这样的风险。
忽悠到几台服务器后,(口误,是拥有后),我们怎么来用多台redis服务器来解决这种问题呢。
好了闲话不多说直接上正题,只讲步骤具体配置文件就不发出来了。
有需要的点赞关注收藏联系作者。
主从模式:
两台以上的redis 服务器,一台为主节点master 另外几台台为从节点slave, 项目连接上主节点,当主节点有数据更新时,更新完成的同时主节点会向从节点发送一条命令,从节点的数据就会更新 从节点默认是只读的,当主节点master宕机后,从节点不能连接项目用来更新存储数据。
优点:
1,配置简单
2, 解决了数据的冗余备份,是哨兵模式的基础
缺点:
不能解决高可用的问题
Sentinel 哨兵模式:
在主从模式的基础上加上哨兵服务,它是一个单独的服务,具体配置在sentinel.conf里,配置完直接启动即可 哨兵会监控向主节点和从节点的服务 如果发现主节点宕机了 哨兵会选举一个从节点作为新的主节点,实现故障转移 宕掉的主节点恢复后成为新的从节点 发现任意一台节点出现问题 Sentinel 可以通过 API 向管理员或者其他应用程序发送通知; 哨兵的设置最好设置成单数,因为他的选举机制是少数服从多数,如果是双数会有选举两个从节点而导致脑裂的可能。 项目连接的是哨兵服务。
优点:
1,可以实现故障转移,高可用
2,哨兵Sentinel 会实时监控所有的主从节点,通过API 向管理员或者其他应用程序发送通知。
缺点:
1,主从切换时间会丢失数据
2,单master主节点性能压力问题
分片集群模式:
多个master主节点,每个主节点拥有自己的从节点slave 创建集群时每个master主节点通过平均分配获取哈希槽范围, 哈希槽范围为0-16383,例如如果有三个 则范围大致为(1-5000,5000-10000,10000-16383) 注意是 大致平均分配 因为哈希槽范围 0-16383 所以redis集群中master最大节点数不能超过16384 项目可以连接任意一个主master节点 client客户端通过CRC16算法算出要连接的主节点。 CRC16算法算出的节点永远小于16383 对同一个key CRC16算法多次运算算出的结果一致 对不同的一个key CRC16算法结果可能一致。
划重点
从节点选举步骤:
当从节点发现自己复制的主节点已下线了,会向集群里面广播一条消息,要求所有有投票权的节点给自己投票(所有负责处理槽的主节点都有投票权)
主节点会向第一个给他发选举消息的从节点回复支持
当支持数量超过N/2+1的情况下,该从节点当选新的主节点
集群模式和哨兵模式的区别:
哨兵模式监控权交给了哨兵系统,集群模式中是工作节点自己做监控
哨兵模式发起选举是选举一个leader哨兵节点来处理故障转移,集群模式是在从节点中选举一个新的主节点,来处理故障的转移
欢迎大家一起讨论,一起进步,我在这里风里雨里等你
这篇关于Redis架构模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-22Redis入门教程:轻松掌握数据存储与操作
- 2024-10-22Redis缓存入门教程:快速掌握Redis缓存基础知识
- 2024-10-22Redis入门指南:轻松掌握Redis基础操作
- 2024-10-22Redis Quicklist 竟让内存占用狂降50%?
- 2024-10-17Redis学习:从入门到初级应用教程
- 2024-10-12Redis入门:新手必读教程
- 2024-09-26阿里云Redis项目实战:新手入门教程
- 2024-09-26阿里云Redis资料入门教程
- 2024-09-25阿里云Redis入门教程:快速掌握Redis的基本操作
- 2024-09-25阿里云Redis学习:新手入门教程