1. 概述
1.1 高可用
互联网“三高”架构:
高并发
高性能
高可用
- 可用性:全年的时间除去宕机的时间 除以 全年的时间,这样得出值,就是可用性。简单来说,就是服务器正常运行时间占全年整体时间的比值
- 高可用:业界可用性目标5个9,即
99.999%
,即服务器年宕机时长低于315秒,约5.25分钟
Redis是否高可用:
单机redis的风险与问题
问题1.机器故障
- 现象:硬盘故障、系统崩溃
- 本质:数据丢失,很可能对业务造成灾难性打击
- 结论:基本上会放弃使用redis.
问题2.容量瓶颈
- 现象:内存不足,从16G升级到64G,从64G升级到128G,无限升级内存
- 本质:穷,硬件条件跟不上
- 结论:放弃使用redis
结论:
为了避免单点Redis服务器故障,准备多台服务器,互相连通。将数据复制多个副本保存在不同的服务器上,连接在一起
,并保证数据是同步
的。即使有其中一台服务器宕机, 其他服务器依然可以继续提供服务,实现Redis的高可用,同时实现数据冗余备份
。
1.2 多台服务器连接方案
提供数据方: master(用于提供数据的)
- 主服务器,主节点,主库
- 主客户端
接收数据方: slave(接收数据)
- 从服务器,从节点,从库
- 从客户端
需要解决的问题:
- 数据同步(master的数据复制到slave中)
图例:
1.3 主从复制的概念
概念:主从复制即将master中的数据即时、有效的复制到slave中
特征: 一个master可以拥有多个slave,一个slave只对应一个master
职责:
master: .
- 写数据
- 执行写操作时,将出现变化的数据自动同步到slave
- 读数据(可忽略,是可以读的)
slave:
- 读数据
- 写数据(禁止)
1.4 主从复制的作用
读写分离
: master写、 slave读, 提高服务器的读写负载能力
负载均衡
:基于主从结构,配合读写分离,由slave分担master负载, 并根据需求的变化,改变slave的数量,通过多个从节点分担数据读取负载,大大提高Redis服务器并发量与数据吞吐量
故障恢复
:当master出现问题时, 由slave提供服务,实现快速的故障恢复
数据冗余
:实现数据热备份,是持久化之外的一种数据冗余方式
高可用基石
:基于主从复制,构建哨兵模式与集群,实现Redis的高可用方案