Redis常见面试题(一)

1、Redis 的持久化机制有哪些?

RDB(默认) 和 AOF 机制

2、Redis主从复制用什么拓扑结构?

单向链表结构,即:
Master <- Slave1 <- Slave2 <- Slave3…
这样的结构方便解决单点故障问题,实现Slave对Master的替换。如果Master挂了,可以立刻启用Slave1做Master,其他不变。

3、Redis的回收策略有哪些?

1.  volatile-lru:从已设置过期时间的数据集中挑选最近最少使用的数据淘汰
2.  volatile-ttl:从已设置过期时间的数据集中挑选将要过期的数据淘汰
3.  volatile-random:从已设置过期时间的数据集中任意选择数据淘汰
4.  allkeys-lru:从数据集中挑选最近最少使用的数据淘汰
5.  allkeys-random:从数据集中任意选择数据淘汰
6.  no-enviction:禁止驱逐数据


4、如何选择Redis的回收策略?

如果数据呈现幂律分布,也就是一部分数据访问频率高,一部分数据访问频率低,则使用 lru;
如果数据呈现平等分布,也就是所有的数据访问频率都相同,则使用 random

5、Redis的内存用完了会发生什么?

如果达到设置的上限,Redis的写命令会返回错误信息(但是读命令还可以正常返回)。
解决思路:配置内存淘汰机制,当Redis达到内存上限时会冲刷掉旧的内容。


6、Redis有哪些数据结构?

String、Hash、List、Set、SortedSet。

如果你是Redis中高级用户,还需要加上下面几种数据结构:HyperLogLog、Geo、Pub/Sub。
如果你说还玩过Redis Module,像BloomFilter,RedisSearch,Redis-ML,面试官得眼睛就开始发亮了。

7、Pipeline有什么好处?为什么要用pipeline?

可以将多次IO往返的时间缩减为一次,前提是pipeline执行的指令之间没有因果相关性。
Pipeline可以提高Redis的QPS峰值。

8、Redis 两种集群方案的区别?

Redis Sentinal:着眼于高可用,在master宕机时会自动将slave提升为master,继续提供服务。
Redis Cluster:着眼于扩展性,在单个redis内存不足时,使用Cluster进行分片存储。

9、Redis持久化数据和缓存怎么做扩容?

如果Redis被当做缓存使用,使用一致性哈希实现动态扩容缩容。
如果Redis被当做一个持久化存储使用,必须使用固定的keys-to-nodes映射关系,节点的数量一旦确定不能变化。否则必须使用可以在运行时进行数据再平衡的一套系统,而当前只有Redis集群可以做到这样。

10、如果有大量的key需要设置同一时间过期,一般需要注意什么?

如果大量的key过期时间设置的过于集中,到过期的那个时间点,redis可能会出现短暂的卡顿现象。
一般需要在时间上加一个随机值,使得过期时间分散一些。


内容来自公众号:小谢backup
#Redis#
全部评论

相关推荐

06-05 22:16
已编辑
门头沟学院 Java
项目拷打:1.&nbsp;遇到的最大困难?是怎么解决的?2.&nbsp;行人重识别算法的技术选型,是否要训练,怎么创新的?3.&nbsp;聊一下docker,你是怎么理解docker的4.&nbsp;Dockerfile,&nbsp;docker&nbsp;compose1.&nbsp;秒杀实现过程2.&nbsp;讨论订单id的生成(答时间戳+当日订单数,问高qps下时间戳应该用毫秒级?微秒级?又答还可以通过uuid这样的自动生成算法)3.&nbsp;秒杀的优惠券是存在哪里的?缓存预热4.&nbsp;你这个redis消息队列出来的订单为什么在异步下单的过程中还要判断是否是同一用户?(答消费者组可以重复消费,讨论也可以一个消费者为一组,保证同一条消息只被同一个线程消费)(反问那你在这里用消费者组是不是不合适)5.&nbsp;是用同一个lua脚本吗?如果高qps,怎么保证库存一致,怎么下单?不是很懂,大概意思是多台服务器同时下单6.&nbsp;RabbitMQ八股:1.&nbsp;redis里面还有哪些数据结构?分别适用于什么场景2.&nbsp;redis高可用怎么实现?主从+哨兵3.&nbsp;redis集群模式下怎么保证数据一致?4.&nbsp;springboot开启事务的方式?(@transactional&nbsp;和什么,不知道)5.&nbsp;spring事务的底层原理(提示aop)6.&nbsp;spring是支持循环依赖的吗?7.&nbsp;rpc了解吗?rpc使用的协议知道吗?8.&nbsp;垃圾回收g1的特点9.&nbsp;mysql四种隔离级别10.&nbsp;幻读和脏读的区别?11.&nbsp;如何防止幻读?12.&nbsp;单库、分库、主从库三者的关系、各自缺点13.&nbsp;有用过什么阿里云的产品吗?oss和百度网盘的区别在哪里(提示oss的名字&nbsp;对象序列化啥的)14.&nbsp;监督学习&nbsp;无监督学习&nbsp;强化学习的区别15.&nbsp;在你训练的过程中遇到过什么报错?口述算法题:二叉树叶子节点的公共祖先
查看26道真题和解析 面试问题记录
点赞 评论 收藏
分享
评论
5
49
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务