今年春招直到3月底才投岗面试,却不曾想,美团一面Redis的疯狂轰炸,分分钟就让我透心凉...灰溜溜的回家储备各大知识技能,摸爬滚打3个月,发誓我会回来的。所以6月底再次投岗美团,上周五也收到了Offer(喜极而泣呀)。
拿到美团Offer后,思来想去,其实Redis也并不是特别难吧,不过美团倒是独爱Redis。
![](https://uploadfiles.nowcoder.com/files/20220525/665954992_1653482492195/v2-382b6d20942b67b24f632fe9bf925fd2_720w.png)
Redis的魅力如此之大,也是因为它是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库,对比其他 key - value 缓存产品有以下三个特点:
-
Redis支持数据的持久化
-
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
-
Redis支持数据的备份,即master-slave模式的数据备份
说到这里,上一个Redis的知识梳理大纲
![](https://uploadfiles.nowcoder.com/files/20220525/665954992_1653482492195/v2-5399c7812b906f2aba2f90f9ac32d352_720w.png)
![](https://uploadfiles.nowcoder.com/files/20220525/665954992_1653482492121/v2-ca8105fab06b3f52e71ac6ac1a0509f3_720w.png)
熬夜几天,手绘这份Redis的知识大纲(xmind):数据结构、发布订阅、事务、哨兵模式、缓存设计与优化、Redis实现分布式锁、nosql数据库、redis.conf、持久化、主从复制、Redis集群(Redis cluster)、Redis的过期策略和内存淘汰策略、Redis面试及实战等方面的内容。但是因为是【原件xmind】不能上传,所以我用截图的方式展示,内容太多看起来密密麻麻的。
接下来,整理Redis 面试中常见的题目(附答案)
这里我是将题目大致的分为以下六个部分吧 第一部分:Redis 的概念理解 第二部分:Redis 数据结构与指令 第三部分:Redis 高并发处理策略 第四部分:Redis 集群结构以及设计理念 第五部分:Redis 缓存管理与持久化机制 第六部分:Redis 应用场景设计
第一部分:Redis 的概念理解
-
什么是 Redis?
-
Redis 的特点有哪些?
-
Memcache 与 Redis 的区别都有哪些?
-
Redis 相比 Memcached 有哪些优势?
-
如何实现本地缓存?请描述一下你知道的方式
-
Redis 通讯协议是什么?有什么特点?
第二部分:Redis 数据结构与指令
![](https://uploadfiles.nowcoder.com/files/20220525/665954992_1653482492130/v2-454e06900bf6fa95b00d4d0399476bb3_720w.png)
-
Redis 支持的数据类型
-
Redis 常用的命令有哪些?
-
一个字符串类型的值能存储最大容量是多少?
-
Redis 各个数据类型最大存储量分别是多少?
-
请介绍一下 Redis 的数据类型 SortedSet(zset)以及底层实现机制?
-
Redis 事务相关命令有哪些?
-
什么是 Redis 事务?原理是什么?
-
Redis 事务的注意点有哪些?
-
Redis 为什么不支持回滚?
-
请介绍一下 Redis 的 Pipeline(管道),以及使用场景
-
请说明一下 Redis 的批量命令与 Pipeline 有什么不同?
-
请介绍一下 Redis 的发布订阅功能
-
Redis 的链表数据结构的特征有哪些?
-
请介绍一下 Redis 的 String 类型底层实现?
-
Redis 的 String 类型***D 方式实现的好处?
-
设置键的生存时间和过期时间有哪些命令?
第三部分:Redis 高并发处理策略
-
为什么 Redis 需要把所有数据放到内存中?
-
Redis 是单线程的吗?
-
Redis 为什么设计成单线程的?
-
什么是缓存穿透?怎么解决?
-
什么是缓存雪崩? 怎么解决?
-
缓存的更新策略有几种?分别有什么注意事项?
-
请介绍几个可能导致 Redis 阻塞的原因
-
怎么去发现 Redis 阻塞异常情况?
第四部分:Redis 集群结构以及设计理念
![](https://uploadfiles.nowcoder.com/files/20220525/665954992_1653482492142/v2-4cc65af1de90497dd3e0f010cc6b00f7_720w.png)
-
Redis 集群架构模式有哪几种?
-
Redis 集群最大节点个数是多少?
-
Redis 集群的主从复制模型是怎样的?
-
请介绍一下 Redis 集群实现方案
-
Redis 集群会有写操作丢失吗?为什么?
-
Redis 慢查询是什么?通过什么配置?
-
Redis 的慢查询修复经验有哪些?怎么修复的?
-
如何优化 Redis 服务的性能?
-
Redis 的主从复制模式有什么优缺点?
-
Redis sentinel(哨兵)模式优缺点有哪些?
-
如何设置 Redis 的最大连接数?查看 Redis 的最大连接数?查看 Redis 的当前
-
介绍一些 Redis 常用的安全设置?
第五部分:Redis 缓存管理与持久化机制
![](https://uploadfiles.nowcoder.com/files/20220525/665954992_1653482492142/v2-beac2eeaea4a6d2b23e48182b38f06e5_720w.png)
-
Redis 持久化机制有哪些?
-
Redis 持久化机制 AOF 和 RDB 有哪些不同之处?
-
请介绍一下 RDB 持久化机制的优缺点
-
请介绍一下 AOF 持久化机制的优缺点
-
如果 AOF 文件的数据出现异常, Redis 服务怎么处理?
-
常见的淘汰算法有哪些?
-
Redis 淘汰策略有哪些?
-
Redis 缓存失效策略有哪些?
-
Redis 如何做内存优化?
-
什么是 bigkey? 有什么影响?
-
怎么发现 bigkey?
-
Redis 的内存消耗分类有哪些?内存统计使用什么命令?
-
简单介绍一下 Redis 的内存管理方式有哪些?
-
如何设置 Redis 的内存上限?有什么作用?
-
Redis 报内存不足怎么处理?
![](https://uploadfiles.nowcoder.com/files/20220525/665954992_1653482492322/v2-3218cc750938f30e0e1ded4446fd33f0_720w.png)
第六部分:Redis 应用场景设计
-
Redis 适用场景有哪些?
-
Redis 常用的业务场景有哪些?
-
Redis 支持的 Java 客户端有哪些? 简单说明一下特点。
-
请简单描述一下 Jedis 的基本使用方法?
-
Jedis 连接池链接方法有什么优点?
-
什么是分布式锁?有什么作用?
-
分布式锁可以通过什么来实现?
-
介绍一下分布式锁实现需要注意的事项?
-
Redis 怎么实现分布式锁?
-
缓存命中率表示什么?
-
怎么提高缓存命中率?
-
请介绍一下 Spring 注解缓存
答案解析如下(70题+答案共25页):
![](https://uploadfiles.nowcoder.com/files/20220525/665954992_1653482492201/v2-4d14000660379e98a9647c9fd38d3322_720w.png)
最后:手写Redis笔记:基础篇+数据结构篇+持久化篇+集群篇
当今互联网技术架构中 Redis 已然成为了应用得最广泛的中间件之一,它也是中高级后端工程 技术面试 中面试官最喜欢问的工程技能之一,不仅仅要求着我们对 基本的使用 进行掌握,更要深层次地理解 Redis 内部实现 的细节原理。熟练掌握 Redis,甚至可以毫不夸张地说已经半只脚踏入心仪的公司了。这份手写Redis笔记:基础篇+数据结构篇+持久化篇+集群篇,可用来复盘查漏
![](https://uploadfiles.nowcoder.com/files/20220525/665954992_1653482492081/v2-f94ca25760c2ffd239fefbcec2f2b309_720w.png)
![](https://uploadfiles.nowcoder.com/files/20220525/665954992_1653482492210/v2-7d33e632f59b6311bd1e081918075b2e_720w.png)
![](https://uploadfiles.nowcoder.com/files/20220525/665954992_1653482492418/v2-4fae62fb6363c3c567eab306d700fdf9_720w.png)
总结
今天关于Redis的复盘就到这了里,也许可能你在面试中也会被Redis疯狂轰炸,尤其是美团,比如以下的七连问轰炸:
-
Redis 持久化有哪几种方式,怎么选?
-
Redis 主从同步是怎样的过程?
-
Redis 的 zset 怎么实现的?
-
Redis key 的过期策略Redis了解吗?你说说怎么用Redis实现分布式锁?
-
Redis常用数据结构及底层数据结构实现
-
如何解决 Redis 的并发竞争 Key 问题
-
如何保证缓存与数据库双写时的数据一致性?
不知道面对这些疯狂轰炸你能否镇定自若的回答不卡壳?