前言
Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难。我在一次又一次面试失败后,终于找到了一份押题命中率高达90%的面试题。最后成功拿下35K薪资的offer!
因为自己走了很多弯路,所以希望能帮助各位读者以后面试势如破竹,对面试官进行360°的反击,吊打问你的面试官,吊打一同面试的同僚(好像不太好),疯狂收割大厂offer!
随便呈上几道,看看大家能否答出来:
(0)redis为什么是key,value的,为什么不是支持SQL的?
(1)redis是多线程还是单线程?(回答单线程的请回吧,为什么请回,请往下看)
(2)redis的持久化开启了RDB和AOF下重启服务是如何加载的?(10个人9个回答错误)
(3)redis如果做集群该如何规划?AKF/CAP如何实现和设计?
(4)10万用户一年365天的登录情况如何用redis存储,并快速检索任意时间窗内的活跃用户?
(5)redis的5种Value类型你用过几种,能举例吗?
(6)100万并发4G数据,10万并发400G数据,如何设计Redis存储方式?
话不多说,来看完整版的面试题吧:
应用篇

1.分布式锁
分布式应用与并发问题是分不开的。

篇幅原因,仅以截图的形式展现,有需要完整版的小伙伴下方即可免费获取
2.延时队列
我们经常用 Kafka 和 Rabbitmq 作为消息队列中间件,在应用程序之间增加异步消息传递功能。但是使用过 Rabbitmq 的朋友就知道,步骤是有多么繁琐。但是有了 Redis,我们就可以从繁琐步骤里解脱出来,当只有一组消费者的消息队列时,使用 Redis就会非常轻松地搞定。

3.位图
当存储量巨大过亿时,Redis 提供的位图数据结构就可以完全容纳下,这就大大
节约了存储空间。

4.HyperLogLog
如果你的页面访问量很大,你统计需要用一个很大的 set 集合时,就会非常的浪费空间。当需要用很大的存储空间时,Redis 提供的 HyperLogLog 数据结构就可以很好地解决这种统计问题。

5.布隆过滤器
由于 Redis 的事务使用非常简单,跟关系数据库不同,我们可以直接使用。但是也正因为过于简单,它的事务模型很不严谨,那么我们就不能像使用关系数据库的事务一样来使用 Redis。

6.简单限流
Redis 消息队列有很多优势的同时,也存在着不足之处,那就是它不支持消息的多播机制

7.漏斗式限流
由于Redis所有的数据都放在内存里,那么它很容易因为我们内存不足而导致崩溃。当 Redis 内部管理的集合数据结构很小时,它会进行压缩存储。 比如可以使用数组来模拟 HashMap 的增删改操作。

8.GeoHash
很多企业没有使用到 Redis 的集群,但是至少都做了主从。在了解 Redis 的主从复制之前,我们可以先来理解一下现代分布式系统的理论基石——CAP 原理。

原理篇


集群&拓展篇


源码篇



本文分享了一份高命中率的Redis面试题集,涵盖了Redis的单线程模型、持久化策略、集群规划、数据存储优化等方面,旨在帮助读者准备面试,提升技术水平,包括分布式锁的实现、延时队列的简化、位图数据结构的应用、HyperLogLog在统计上的效率以及布隆过滤器在节省存储空间上的作用等。
364

被折叠的 条评论
为什么被折叠?



