高可用=7*24小时可用
redis主从
1、主从模式是主节点写,从节点作为备份,但主节点出现故障不会自动转移,需要手工操作,所以线上主从不常用。
实现:
复制一份redis.conf配置文件
主节点端口为6379
从节点端口为6380
从节点不能进行写操作
redis-6379.conf 配置修改如下:
bind 127.0.0.1
requirepass “123456” //非必须
protected-mode no
replica-read-only yes
repl-disable-tcp-nodelay yes 主从一般不在同一主机上,主从实时复制时会有网络开销,开启延时,默认40毫秒发一次
redis-6380.conf配置修改如下:
port 6380
replicaof 192.168.1.250 6379
masterauth 123456
replica-read-only yes //从节点只读
启动主节点:
src/redis-server redis.conf &
启动从节点:
src/redis-server redis-6380.conf &
连接主节点并查看节点状态:
src/redis-cli -h 192.168.1.250 -p 6379 -a 123456
info replication
主从模式有:
一主一从
一主多从
树状一主多从
哨兵模式
通过哨兵监控节点状态,进行主节点选举,采用少数服从多数政策,所以哨兵个数最好是奇数。解决主节点出现故障,不能提供正常服务的问题。
每个哨兵每间隔10秒向主节点和从节点发送info命令,获取拓扑结构图,
哨兵通过主节点获取从节点信息,所以哨兵只配置主节点信息即可。
每个哨兵每隔2秒向redis数据节点进行发布/订阅
每间隔1秒,每个sentinel向其他setinel和redis阶段发送ping命令做心跳检测
哨兵主节点选举流程:
采用Raft一致性算法。
a、当主节点发生故障不能正常提供服务时,第一个发现故障的哨兵Sentinel向其他哨兵发is_master_down_by_addr命令,征求判断并要求将自己设置为领导者,由领导者处理故障转移。
b、当其他哨兵收到此请求时,可以同意或拒绝它成为领导者
c、如果此哨兵节点获得>=(n/2)+1的票数,就是领导者,否则就继续选举。
故障转移
由领导节点负责故障转移。过程和主从复制一样,但是是自动执行。
故障转移流程:
a、将slave-1脱离从节点,升级为主节点
b、将slave-2指向新的主节点
c、通知客户端主节点已换
d、将原主节点变成从节点,并指向新的主节点
选新的主节点流程:
a、过滤掉不健康(下线或断线)的从节点,没有回复过ping哨兵响应的节点
b、选择slave-priority(redis.conf配置)从节点优先级高的节点
c、选择复制偏移量最大,指复制最完整的从节点
redis哨兵模式搭建
3个sentinel哨兵,1个主节点,2个从节点进行安装
1、搭建好1主2从的主从配置,主:6379,从:6380,6381
redis分布式
未完待续