50道Redis高频面试题(13-20)


十三、线上Redis持久化策略一般如何设置

如果对性能要求较高,在master最好不要做持久化,可以在某个slave开启aof备份数据,策略设置为每秒同步一次即可。

十四、一次线上事故,Redis主节点宕机导致数据全部丢失

如果你的Redis采用如下模式,就会发生数据丢失问题:

  • master-slave + 哨兵部署实例。
  • master没有开启数据持久化功能。
  • Redis进程使用supervisor管理,并配置为进程宕机,自动重启。
    如果此时master宕机,就会导致下面问题:
  • master宕机哨兵还未发起切换,此时master进程立即被supervisor自动拉起。
  • 但master 没有开启任何数据持久化,启动后是一个空实例。
  • 此时slave 为了与master保持一致,他会自动清空实例中的所有数据,slave也变成一个空实例。
    这个场景下master/slave的数据就全部丢失了。
    这时,业务应用在访问Redis时,发现缓存中没有任何数据,就会把请求全部打到后端数据库中,这还会进一步引发缓存雪崩。
    这种情况下,我们一般不应该给Redis主节点配置京城宕机马上自动重启策略,而是应该等哨兵吧某个slave切换为master之后,再重启之前宕机的节点让其变成slave。

十五、Redis如何做綫上备份

1、写crontab定时调度脚本,每小时都copy一份rdb或aof文件到另一台机器中,保留最近48小时的备份。
2、每天都保留一份当日的数据备份,到一个目录中,可以保留最近一个月的备份。
3、每次copy备份的时候,都把太旧的备份删除。

十六、Redis主从复制风暴是怎么回事

如果Redis主节点有很多从节点,在某一时刻如果所有从节点都同时连上主节点,那么主节点会同时吧内存快照RDB发给多个从节点,这样会导致Redis主节点压力过大,这就是所谓的Redis主从复制风暴问题。
这个问题我们对Redis主从架构做一些优化得以避免,比如可以做下面这种树形复制架构。
50道Redis高频面试题(13-20)

十七、Redis集群网络抖动导致频繁主从切换怎么处理

50道Redis高频面试题(13-20)

十八、Redis集群为什么至少需要三个master节点、为什么推荐奇数个节点

因为新的master的选举需要大于半数的集群master节点同意才能选举成功,如果只有两个master节点,当其中一个挂了,是达不到选举master条件的。
奇数个master节点可以在满足选举条件的基础上,节省一个节点,比如三个master和四个master相比,都挂了一个master,都可以选举,都挂了两个就都不能选举了。所以技术的master节点更多的是从节省机器资角度出发的。
50道Redis高频面试题(13-20)

十九、Redis集群支持批量操作命令嘛

对于类似mset、mget这样多个key的原生批操作命令,redis集群只支持所有key落在同一个solt的情况,入股分布在多个solt就会报错,如果在key前面加上{XXX},这样参数数据分片hash计算的时候只会是大括号里的值,这样就确保不同的key在同一个slot中。

mset {user}:1:name wqx {user}:1:age:18

二十、Redis主从切换分布式锁丢失的问题

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/database/283159.html

(0)
上一篇 2022年8月30日 20:05
下一篇 2022年8月30日 20:05

相关推荐

发表回复

登录后才能评论