1.redis的高并发可用?
首先可以搭建主从集群,再加上使用redis的哨兵模式。
2. 什么是哨兵模式?
哨兵(sentinel)模式:可以实现主从集群的自动故障恢复。包含了主从服务的监控、自动故障恢复、通知。
监控:自动故障恢复:如果主从集群中的master节点故障,sentinel会将一个slave提升为master。
当故障实例恢复后也是以新的master为主。
通知:冲断redis客户端的服务发现来源,当集群发生故障是,会将最新消息发送给redis客户端。
一般项目都是用redis主从集群+哨兵模式来保证redis高并发高可用。
3.redis集群脑裂以及解决?
脑裂:在redis主从集群+哨兵模式中,由于网络等原因,当master、slave、sentinel三至不在同一个网
络分区中,使得sentinel没有心跳感知到master,所以通过选举产生了一个新的master,这样的情况就
存在了两个master,导致客户端还在像old master写入数据,新节点无法同步数据,导致网络等原因恢复后,
old master会变成slave,这是slave从新master同步数据,这会导致old master丢失大量的数据。
解决:
1. 设置最少的slave个数,比如最少一个从节点才能同步数据;
2. 设置主从数据复制和同步的延迟时间,达不到要求久拒绝请求;
这样就可以避免丢失大量数据。