专业手机建站公司,网站推广链接,wordpress下载管理,常德网站建设目录 面试官#xff1a;怎么保证Redis的高并发高可用
面试官#xff1a;你们使用redis是单点还是集群#xff0c;哪种集群
面试官#xff1a;redis集群脑裂#xff0c;该怎么解决呢#xff1f; 面试官#xff1a;怎么保证Redis的高并发高可用
候选人#xff1a;首先…目录 面试官怎么保证Redis的高并发高可用
面试官你们使用redis是单点还是集群哪种集群
面试官redis集群脑裂该怎么解决呢 面试官怎么保证Redis的高并发高可用
候选人首先可以搭建主从集群再加上使用redis中的哨兵模式哨兵模式可以实现主从集群的自动故障恢复里面就包含了对主从服务的监控、自动故障恢复、通知如果master故障Sentinel会将一个slave提升为master。当故障实例恢复后也以新的master为主同时Sentinel也充当Redis客户端的服务发现来源当集群发生故障转移时会将最新信息推送给Redis的客户端所以一般项目都会采用哨兵的模式来保证redis的高并发高可用 面试官你们使用redis是单点还是集群哪种集群
候选人嗯我们当时使用的是主从1主1从加哨兵。一般单节点不超过10G内存如果Redis内存不足则可以给不同服务分配独立的Redis主从节点。尽量不做分片集群。因为集群维护起来比较麻烦并且集群之间的心跳检测和数据通信会消耗大量的网络带宽也没有办法使用lua脚本和事务
面试官redis集群脑裂该怎么解决呢
候选人嗯 这个在项目很少见不过脑裂的问题是这样的我们现在用的是redis的哨兵模式集群的
有的时候由于网络等原因可能会出现脑裂的情况就是说由于redis master节点和redis salve节点和sentinel处于不同的网络分区使得sentinel没有能够心跳感知到master所以通过选举的方式提升了一个salve为master这样就存在了两个master就像大脑分裂了一样这样会导致客户端还在old master那里写入数据新节点无法同步数据当网络恢复后sentinel会将old master降为salve这时再从新master同步数据这会导致old master中的大量数据丢失。
关于解决的话我记得在redis的配置中可以设置第一可以设置最少的salve节点个数比如设置至少要有一个从节点才能同步数据第二个可以设置主从数据复制和同步的延迟时间达不到要求就拒绝请求就可以避免大量的数据丢失