当前位置:网站首页>你必须知道的4种 Redis 集群方案及优缺点对比
你必须知道的4种 Redis 集群方案及优缺点对比
2022-07-20 10:14:00 【InfoQ】
redis cluster
redis cluster
Twemproxy、Codis
1.主从模式

主从模式优缺点
- 优点: 主从结构具有读写分离,提高效率、数据备份,提供多个副本等优点。
- 不足: 最大的不足就是主从模式不具备自动容错和恢复功能,主节点故障,集群则无法进行工作,可用性比较低,从节点升主节点需要人工手动干预。
- 在从数据库中使用SLAVE NO ONE命令将从数据库提升成主数据继续服务。
- 启动之前崩溃的主数据库,然后使用SLAVEOF命令将其设置成新的主数据库的从数据库,即可同步数据。
2.哨兵模式


(1)哨兵模式的作用:
(2)哨兵实现原理
sentinel monitor master-name ip port quorum#master-name是主数据库的名字#ip和port 是当前主数据库地址和端口号#quorum表示在执行故障切换操作前,需要多少哨兵节点同意。
- 订阅主数据库
_sentinel_:hello
频道以获取同样监控该数据库的哨兵节点信息
- 定期向主数据库发送info命令,获取主数据库本身的信息。
_sentinel_:hello
_sentinel:hello
(3)主观下线和客观下线
down-after-millisecond
SENTINEL is-master-down-by-addr
- 选出领头哨兵。
- 领头哨兵所有的slave选出优先级最高的从数据库。优先级可以通过
slave-priority
选项设置。
- 如果优先级相同,则从复制的命令偏移量越大(即复制同步数据越多,数据越新),越优先。
- 如果以上条件都一样,则选择
run ID
较小的从数据库。
slave no one
slaveof
(4)哨兵模式优缺点
- 哨兵模式是基于主从模式的,解决可主从模式中master故障不可以自动切换故障的问题。
- 是一种中心化的集群实现方案:始终只有一个Redis主机来接收和处理写请求,写操作受单机瓶颈影响。
- 集群里所有节点保存的都是全量数据,浪费内存空间,没有真正实现分布式存储。数据量过大时,主从同步严重影响master的性能。
- Redis主机宕机后,哨兵模式正在投票选举的情况之外,因为投票选举结束之前,谁也不知道主机和从机是谁,此时Redis也会开启保护机制,禁止写操作,直到选举出了新的Redis主机。
3.各大厂的Redis集群方案
(1)客户端分片
Redis Sharding

优点:
mod(key,d)
Redis Sharding
consistent hashing
不足:
(2)代理分片
Twemproxy
Twemproxy
Twemproxy
Twemproxy
Twemproxy
Twemproxy

Twemproxy的优点:
- 客户端像连接Redis实例一样连接Twemproxy,不需要改任何的代码逻辑。
- 支持无效Redis实例的自动删除。
- Twemproxy与Redis实例保持连接,减少了客户端与Redis实例的连接数。
Twemproxy的不足:
- 由于Redis客户端的每个请求都经过Twemproxy代理才能到达Redis服务器,这个过程中会产生性能损失。
- 没有友好的监控管理后台界面,不利于运维监控。
- Twemproxy最大的痛点在于,无法平滑地扩容/缩容。对于运维人员来说,当因为业务需要增加Redis实例时工作量非常大。
(3)Codis
Twemproxy

Redis Server Group
CodisRedis
CodisRedis
CodisRedis
CodisRedis
CodisRedis
CodisRedis
CodisRedis
CodisRedis
CodisRedis
Codis-ha
CodisRedis
CodisRedis
CodisRedis
1~1024
crc32(key)%1024
1~1024
crc32(key)%1024
Redis Server Group
Redis Server Group
Redis Server Group
Redis Server Group
Redis Server Group
Redis Server Group
Redis Server Group

Redis Server Group
Redis Server Group
Redis Server Group

4.Redis Cluster
- 哨兵模式下每台 Redis 服务器都存储相同的数据,很浪费内存空间;数据量太大,主从同步时严重影响了master性能。
- 哨兵模式是中心化的集群实现方案,每个从机和主机的耦合度很高,master宕机到salve选举master恢复期间服务不可用。
- 哨兵模式始终只有一个Redis主机来接收和处理写请求,写操作还是受单机瓶颈影响,没有实现真正的分布式架构。
Redis Cluster
Redis Cluster

Redis Cluster
- 集群完全去中心化,采用多主多从;所有的redis节点彼此互联(
PING-PONG
机制),内部使用二进制协议优化传输速度和带宽。
- 客户端与 Redis 节点直连,不需要中间代理层。客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可。
- 每一个分区都是由一个Redis主机和多个从机组成,分片和分片之间是相互平行的。
- 每一个master节点负责维护一部分槽,以及槽所映射的键值数据;集群中每个节点都有全量的槽信息,通过槽每个node都知道具体数据存储到哪个node上。
redis cluster
redis cluster
redis cluster
Redis Cluster
边栏推荐
- Redis-key的层级格式
- APK打包流程
- Excel-vba quick start (VIII. Cell objects - common cell operations)
- 【u-boot】u-boot运行主线分析【02】—board_init_f
- Wps2019 all macros are forbidden. You have to pay for enabling macros. How to use them for free
- Sys_rman备份报错
- 足球队巡礼 - 英超西汉姆联
- Redis command line client
- LeetCode简单题之强密码检验器 II
- Redis key hierarchical format
猜你喜欢
Ankerui motor monitoring scheme low voltage motor circuit and feeder distribution circuit power energy monitoring
【u-boot】u-boot运行主线分析【02】—board_init_f
第一章第八节:简单了解数据类型
在 Business Application Studio 里使用 SAP UI5 应用消费 OData 的 Create 和 Delete 操作
Custom persistence layer framework myormframework (III) - framework implementation
“问天号”已就位!喻京川2013年畅想的《中国空间站》,即将启航星辰大海!...
VRRP虚拟冗余协议配置
《ASP.NET Core 6框架揭秘》实例演示[02]:基于路由、MVC和gRPC的应用开发
什么是 IP SSL 证书,如何申请?
WPS2019 所有宏被禁,用启用宏要付费,如何免费使用
随机推荐
第一章 第六节:变量
工控安全PLC固件逆向三
第一章第十节:条件判断 if
掌握JedisPoolConfig参数配置,学会调优技能
巴比特 | 元宇宙每日必读:迪拜推出国家元宇宙战略,计划在未来五年内将元宇宙相关公司数量翻 5 倍,支持4万个虚拟工作岗位...
没有了可用Task slot,Flink新增任务会怎样?
“问天号”已就位!喻京川2013年畅想的《中国空间站》,即将启航星辰大海!...
Exchange 2010 SSL证书安装文档
jenkins pipeline下载代码到指定workspace
Leetcode simple problem strong password checker II
Average value of sliding window of leetcode simple problem
NIO基础之三大组件
服务器的性能监控
DNA助力破解30年前悬案,嫌疑人或因爱上室友而勒死其女友,被捕时已是科技公司CEO...
Rearrange characters of leetcode simple question to form target string
Flink实战:消费Wikipedia实时消息
仍旧是同步问题
vs2019配置Qt5开发环境
VRRP虚拟冗余协议配置
全球首条“消费-投资”公链——Genesis,受邀参加Consensus 2022