摘要
博文主要是介绍的在redis面试中的遇见到的和具有典型的面试问题,同时给出个人的对于问题的思考和解答,仅供大家参考。
一、面试问题
Redis 作为消息队列为什么不能保证 100% 的可靠性?
1、消费者拉取到消息后,如果发生异常宕机,那这条消息就丢失了。由于的Redis的数据的都是在的存储在内存中,如果机器掉电的话,就可能存在的数据丢失的问题。为了竟可能的少的丢失的数据,可能开启redis的持久化功能。但是也不能百分之百。
2、因为没有ask机制,当消费端崩溃后消息丢失。pop出消息后,list 中就没这个消息了,如果处理消息的程序拿到消息还未处理就挂掉了,那消息就丢失了,所以是不可靠队列。如果对消息可靠性要求较高, 推荐使用 MQ 来实现。
redis keys* scan在扩容和缩容时候以及渐进性rehash的时候的会不会出现数据重复的问题以及数据遗漏的问题。
redis主从节点是长连接还是短连接?
怎么判断Redis节点是否工作正常?
一般判断节点是否正常工作,常用的方法都是通过互相的ping