标签:架构 可用 Redis 笔记 master 服务器 slave 节点
【随笔记】Redis(二)
由简入繁,水滴石穿。
Redis 的架构模式
单机版
直接说,就是只有一个redis,坏了就没得用那种。
- 特点:简单,很简单。
- 缺点:
- 存储容量有限制,取决于所在服务器的能力
- 处理能力有限,也取决于所在服务器的能力
- 高可用性无,没有高可用,坏了就没得用
主从复制
高端点的单机版,Redis的复制(replication)功能允许用户根据一个Redis服务器来创建多个任意的复制品,其中被复制的服务器就是主服务器(master),而通过复制出来的服务器就是从服务器(slave)。只要主从服务器之间的网络连接正常,主从服务器之间就具有相同的数据,主服务器会一直将自身数据同步给从服务器,保证主从服务器上面的数据相同。
- 特点:
- master、slave两个角色
- master、slave数据是相同的
- 可以降低master读数据压力,可以将读操作交给slave
- 缺陷:
- 没有高可用,master宕机后还是没得用
- slave为master减轻读压力,但是master还是存在写压力
哨兵模式
高端模式,解决了高可用、自动进行故障转移。
- 监控(monitoring):Sentinel会不断检查主服务器和从服务器是否正常工作;
- 提醒(Notification):当被监控的某个Redis服务器出现问题,Sentinel可以通过API向管理员或者其他程序发送通知;
- 自动故障迁移(Automatic failover): 当一个主服务器不能正常工作,Sentinel会进行一次自动故障迁移。
- 特点:
- 高可用
- 监控所有节点
- 可以自动故障迁移
- 缺点:
- 主从模式切换时间中,数据会丢失
- master写压力没有解决
集群模式(Proxy)
高端玩法。使用Twitter开源的Twemproxy,一个Redis和Memcache快速/轻量级代理服务器,他是一个快速的单线程代理程序,支持Memcached ASCII协议和Redis协议。
- 特点鲜明:
- 1.支持多种hash算法:MD5、CRC16、CRC32、CRC32a、hsieh、murmur、Jenkins;
- 2.支持自动删除失败节点。
- 3.后端Sharding分配逻辑对业务透明,业务的读写方式和操作单个Redis一致;
- 缺点:
- 维护高可用的成本增加,因为同样要维护proxy的高可用
集群模式(直连)
Redis 3.0后版本支持Redis-cluster集群,采用的是无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。
- 特点:
- 无中心架构,少了proxy代理层
- 数据按照slot存储分布在多个节点,节点间数据共享,可动态调整数据分布
- 可扩展性,节点可以动态增加或者减少
- 高可用性,当有节点不可用时,集群仍然可用,可以增加slave做备份数据副本
- 实现故障自动failover,节点之间通过gossip协议交换状态信息,通投票机制完成slave到master的角色提升
- 缺点:
- 资源隔离性差,很容易出现相互影响
- 数据通过异步复制,强一致性不能保证
标签:架构,可用,Redis,笔记,master,服务器,slave,节点 来源: https://blog.csdn.net/hao114500043/article/details/116457368
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。