Redis有哪些架构模式?各自有什么特点?
Redis 有哪些架构模式?说一下各自的特点
单机版
特点: 简单的问题:1.内存容量有限2.处理能力有限3.无法高可用。 主从复制
Redis 的复制 (Putyn) 功能允许用户在每台服务器的基础上创建任意数量的 Redis 服务器副本。复制服务器是主服务器(main),是通过复制创建的。服务器副本是从属服务器。只要主从服务器之间的网络连接正常,主从服务器的数据是相同的,并且主服务器始终将其上发生的数据更新同步到从服务器,从而保证了主从服务器的数据更新。主服务器和从服务器始终相同。特点:
- 主/从角色
- 主/从数据相同
- 减少主库传输到从库时的读压力
问题: 不保证 没有解决主上的写压力
哨兵
Redis哨兵是一个分布式系统,可以监控redis主从服务器,并在主服务器离线时自动接管。其中三个服务是: 监控:Sentinel不断检查主服务器和从服务器是否正常工作。
通知:当托管的Redis服务器出现问题时,Sentinel可以通过API向管理员或其他应用程序发送通知。
自动故障转移:当主服务器发生故障时,Sentinel 会启动自动故障转移操作。 † 集群(代理类型):
Twemproxy 是 Twitter 开源的 redis 和 memcache 快速/轻量级代理服务器; Twemproxy是一个快速的单线程代理程序,支持Memcached ASCII协议和redis协议。
特点:
- 多种哈希算法:MD5、CRC16、CRC32、CRC32a、hsieh、morm、Jenkins
- 支持自动删除失败的逻辑节点共享对业务和业务页面透明读写模式是与运行单个 Redis 时相同。
- 您必须自己实现故障转移逻辑。不支持自动故障转移,扩展性差。膨胀和收缩需要人工干预。
集群(直连型):
Redis - 从redis 3.0及更高版本开始支持。集群集群,Redis-Cluster采用无中心结构,每个节点保存数据和整个集群的状态,每个节点都与所有其他节点相连。
特点:
- 无中心架构(无节点影响性能瓶颈),无代理层。
- 数据按照槽位存储并分布在多个节点中。数据在节点之间共享,并且数据分布可以动态改变。
- 可扩展性,可线性扩展至1000个节点,可动态添加或删除节点。
- 高可用性,部分节点不可用时集群仍然可用。添加从站作为备份
- 可提供自动故障转移。节点通过gossip协议交换状态信息,并利用投票机制完成角色从slave到master的晋升。
缺点:
- 资源隔离性弱,容易产生相互影响。
- 数据异步复制,无法保证数据强一致性
作者:codeyuyu
链接:https://juejin.im/post/5b99d4bce51d450e7a❀♷❀♷来源:版权所有作者。商业转载请联系作者获得许可。非商业转载请注明来源。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。