前言
在找工作的过程中,对于 Redis 技术知识的掌握已经成为必须的技能。美团面试常常就会被问到Redis相关知识,而这次我就差点挂在了美团3面,面试官连问我以下几个Redis的问题,然后就卡壳了...
- redis了解吗?Redis key 的过期策略Redis了解吗?你说说怎么用redis实现分布式锁?
- Redis常用数据结构及底层数据结构实现
- 如何解决 Redis 的并发竞争 Key 问题
- 如何保证缓存与数据库双写时的数据一致性?
- Redis 持久化有哪几种方式,怎么选?
- Redis 的 zset 怎么实现的?
- Redis 主从同步是怎样的过程?
- ... ...(剩下的不太记得了...为此面试完回来针Redis专门做了一个大总结)
01 Redis面试问题常见划分(6个部分,附带完整的答案解析)
第一部分:Redis 的概念理解
第二部分:Redis 数据结构与指令
第三部分:Redis 高并发处理策略
第四部分:Redis 集群结构以及设计理念
第五部分:Redis 缓存管理与持久化机制
第六部分:Redis 应用场景设计
注意:前面例举了所有的问题,在先不看解析的条件下,可先自行试水。。解析在最后。。
此外,笔记是全程手写出来的,希望大家拿到笔记后别丢进收藏夹吃灰!
1.1 Redis面试问题:第一部分:Redis 的概念理解
- 什么是 Redis?
- Redis 的特点有哪些?
- Memcache 与 Redis 的区别都有哪些?
- Redis 相比 Memcached 有哪些优势?
- 如何实现本地缓存?请描述一下你知道的方式
- Redis 通讯协议是什么?有什么特点?
1.2 Redis面试问题:第二部分:Redis 数据结构与指令
- Redis 常用的命令有哪些?
- 一个字符串类型的值能存储最大容量是多少?
- Redis 各个数据类型最大存储量分别是多少?
- 请介绍一下 Redis 的数据类型 SortedSet(zset)以及底层实现机制?
- Redis 事务相关命令有哪些?
- 什么是 Redis 事务?原理是什么?
- Redis 事务的注意点有哪些?
- Redis 为什么不支持回滚?
- 请介绍一下 Redis 的 Pipeline(管道),以及使用场景
- 请说明一下 Redis 的批量命令与 Pipeline 有什么不同?
- 请介绍一下 Redis 的发布订阅功