互联网的三高架构(高并发、高性能、高可用)。下面说一下高可用,比如说一年之中服务器宕机了1天,那么高可用就是(365-1)/ 365= 99.73%
,注意单位要一致,一般到秒一级。业界可用性目标5个9,即99.999%,服务器年宕机时长低于315秒,约5.25分钟。
单机redis的风险与问题
机器故障,数据丢失 容量瓶颈,内存不足为了避免单机redis服务器故障,准备多台机器,同步保存多个副本,实现redis的高可用,同时实现数据冗余备份。
一、什么是主从复制主从复制即将master机器中的数据即时有效的复制到slave机器中,一个master可以拥有多个slave,一个slave只对应一个master。
master 写数据,将数据变化自动同步到slave中
slave 读数据,禁止写
主从复制有三个阶段,第一阶段是slave连接master,连上以后就是第二阶段即把数据同步给slave,最后是反复同步,反复同步是后期收到的数据不停的发送给slave,这一阶段叫命令传播阶段。
快速体验主从复制
slave连接master的方式有多种
方式一,发送命令slaveof master_ip master_port
方式二,启动时使用参数--slaveof master_ip master_port
方式三,服务器配置 slaveof master_ip master_port
下面我使用方式三即配置文件的方式来建立slave与master之间的连接。这里我使用6380端口的redis来作为slave服务器,
3680的配置文件内容:
port 6380
daemonize yes
logfile "redis-6380.log"
dir /an-dev/redis-4.0.14/data
slaveof 127.0.0.1 6379
6379端口的redis作为master。
登录master客户端,看到master有数据,
现在登录slave客户端,看到数据复制了过来,
授权访问
数据同步阶段注意事项
进入命令传播阶段的时候,master与slave之间要进行信息交换,使用心跳机制进行维护,实现双方连接保持在线。
master心跳当slave多数掉线,或者延迟过高,master为保障数据稳定性,将拒绝所有信息同步操作。
min-slaves-to-write 2
min-slaves-max-lag 8
slave数量少于2个,或者所有slave延迟都大于8秒时,强制关闭master写功能,停止数据同步。