前段时间,面了几家大外派到阿里的项目,所以和大家分享一下面试题
上来就是老套路
面试官:说下你们项目的流程
果咩: 巴拉巴拉。。。。
面试官:你们项目如何使用redis高可用的
果咩:可以使用哨兵模式和Cluster集群
面试官:那你讲一下哨兵模式吧
果咩:当我们的主机master宕机之后,我们的slave会等待我们的master上线,再次期间不会进行任何操作,这个时候我们可以手动的进行主机切换,将我们其中的一台从机slaver装换成我们的主机master,当原来的master恢复重新上线的时候,会自动沦为从机slave,可是我们无法知道redis什么时候宕机,所以我们需要他们自动的监控和进行主从切换,而哨兵提供了这些功能,监控,通知和自动的故障转移,最常见的哨兵模型就是一主二从三哨兵
面试官:使用三个哨兵会不会浪费?
果咩:不会,在哨兵模式下,我们需要奇数个哨兵,因为当主机宕机之后哨兵会去判断master是否宕机,在哨兵集群下进行投票,当投票数超过设定的值的时候会进行从机slave选举成为master,所以我们最少需要三台哨兵去监控我们的主机
面试官:说一下redis的持久化
果咩:持久化方式主要有两种,rdb和aof
rdb是redis默认的持久化方式,在指定的时间间隔内将内存中的数据集快照(Snapshot)写入磁盘的二进制文件,所产生的也就是dump.rdb文件,它恢复时是将快照文件直接读到内存里。
aof是以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,
面试官:知道如何实现分布式锁吗
果咩: