一篇与面试官和蔼交流的深入了解Redis
一篇与面试官和蔼交流的深入了解JVM(完结):
https://blog.csdn.net/zhouhengzhe/article/details/113044800
一篇与面试官和蔼交流的深入了解JUC+集合:(完善中)
https://blog.csdn.net/zhouhengzhe/article/details/112691117
一篇与面试官和蔼交流的深入了解Redis:
https://blog.csdn.net/zhouhengzhe/article/details/113283424
一、Redis总结
1、Redis数据结构
1.1、Redis 基本特性
1.2、Redis应用场景
1.3、Redis有哪几种数据结构,原理,应用场景?
1.3.1、String
1.3.1.1、原理
1.3.1.2、常用API
1.3.1.3、应用场景
1.3.2、List
1.3.2.1、原理:
1.3.2.2、常用API
1.3.2.3、应用场景
1.3.3、hash( 哈希):购物车
1.3.3.1、原理:
1.3.3.2、常用API
1.3.3.3、应用场景:
1.3.4、set
1.3.4.1、原理
1.3.4.2、常用API
1.3.4.3、应用场景
1.3.5、zset
1.3.5.1、原理
1.3.5.2、常用API
1.3.5.3、应用场景:
1.3.6、其他
1.3.6.1、GeoHash(附近位置、摇一摇)
1.3.6.2、BloomFilter
1.3.6.3、其他
1.2、zset用过吗,底层数据结构是什么?
1.3、为什么使用跳表?跟B+树怎么比?查找的时间复杂度是多少?
1.4、GEO是干嘛的?举个场景?
1.5、HyperLogLog是干嘛的?
1.6、Redis可以做消息队列吗?有什么缺点?
1.7、可以实现延时队列吗?
2、redis持久化
2.1、redis持久化了解吗?有哪些方式?
2.2、RDB和AOF的定义&生成方式&区别&各自的优缺点?
2.2.1、RDB
2.2.1.1、定义
2.2.1.2、生成方式
2.2.1.3、bgsave的写时复制(COW)机制
2.2.1.4、优点
2.2.1.5、缺点
2.2.2、AOF
2.2.2.1、定义
2.2.2.2、AOF重写
2.2.2.3、数据恢复方式
2.2.2.4、优点:
2.2.2.5、缺点:
2.2.3、AOF和RDB两者比较:
2.3、说一下redis持久化的过程?
2.4、redis持久化方式你们是怎么选型的?
2.5、了解过redis混合持久化吗?是一个文件还是多个文件?
2.6、redis进行持久化的时候会阻塞主线程吗?
2.7、Redis持久化数据和缓存怎么做扩容?
2.8、Redis数据备份策略
3、redis 实现分布式锁
3.1、redis分布式锁了解吗?
3.2、setnx的原理
3.3、假如我的业务代码执行时间不是很稳定?使用redis做分布式锁会有什么问题呢?(锁失效)
3.4、你怎么解决锁超时的问题?有什么方案吗?跟zk的分布式锁有什么区别?
3.4.1、解决方案
3.4.2、区别
3.5、zk分布式锁实现原理
4、redis集群部署
4.1、redis集群部署模式有哪些,介绍一下
4.2、介绍一下sentinel模式如何感知sever节点上下线的?
4.3、哨兵leader选举流程
4.4、sentinel的定时任务
4.5、故障转移过程
4.6、Redis集群原理分析
4.7、Redis集群选举原理分析
4.8、槽位定位算法
4.9、跳转重定位
4.9、Redis集群节点间的通信机制
4.10、网络抖动
4.11、集群脑裂数据丢失问题
4.12、集群是否完整才能对外提供服务
4.13、Redis集群为什么至少需要三个master节点,并且推荐节点数为奇数?
4.14、redis-server的ping/pong协议了解吗?怎么用的?
4.14.1、ping
4.14.2、pong
4.15、讲一下redis主从复制(全量复制),数据部分复制,主从复制(部分复制,断点续传)的过程?
4.15.1、主从复制(全量复制)流程图:
4.15.2、数据部分复制
4.15.3、主从复制(部分复制,断点续传)流程图:
4.16、主从模式下假如主节点挂了之后?
4.17、redis cluster模式下通过key查找value的过程了解吗?
5、redis高可用
5.1、redis cluster模式下如何扩容和缩容的?
5.2、如何解决redis的内存碎片问题?产生的原因是什么?
5.2.1、原因
5.2.2、危害性
5.4.3、解决方案
5.3、redis的内存达到机器内存极限值之后有哪些策略可以避免?
5.4、redis数据(过期键)删除的策略有哪些?
5.5、redis的内存淘汰策略和过期键的删除策略怎么选?
5.6、缓存击穿/缓存雪崩/缓存穿透/热点缓存key重建优化/缓存与数据库双写不一致
5.6.1、缓存击穿(失效)
5.6.1.1、原因
5.6.1.2、解决方案
5.6.2、缓存雪崩
5.6.2.1、原因
5.6.2.2、解决方案
5.6.3、缓存穿透
5.6.3.1、原因
5.6.3.2、解决方案
5.6.4、热点缓存key重建优化
5.6.4.1、原因
5.6.4.2、解决方案
5.6.5、缓存与数据库双写不一致
5.6.5.1、原因
5.6.5.2、解决方案
5.7、bigkey危害,原因,优化方案
5.7.1、危害
5.7.2、原因
5.7.3、优化方案
6、Redis的单线程和高性能
6.1、Redis是单线程吗?
6.2、Redis 单线程为什么还能这么快?
6.3、Redis 单线程如何处理那么多的并发客户端连接?