先来回答这些面试题吧:
- Redis支持的数据类型?
- 什么是Redis持久化?Redis有哪几种持久化方式?优缺点是什么
- 刚刚上面你有提到redis通讯协议(RESP ),能解释下什么是RESP?有什么特点?(可以看到很多面试其实都是连环炮,面试官其实在等着你回答到这个点,如果你答上了对你的评价就又加了一分)
- Redis 有哪些架构模式?讲讲各自的特点
- 什么是一致性哈希算法?什么是哈希槽?
- 使用过Redis分布式锁么,它是怎么实现的?
- 使用过Redis做异步队列么,你是怎么用的?有什么缺点?
- 什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免?
这次我们挑选一个面试题出来解析,待会会分享Redis复习知识点合集
01-什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免?
缓存穿透
一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如DB)。一些恶意的请求会故意查询不存在的key,请求量很大,就会对后端系统造成很大的压力。这就叫做缓存穿透。
如何避免?
- 对查询结果为空的情况也进行缓存,缓存时间设置短一点,或者该key对应的数据insert了之后清理缓存。
- 对一定不存在的key进行过滤。可以把所有的可能存在的key放到一个大的Bitmap中,查询时通过该bitmap过滤。
缓存雪崩
当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,会给后端系统带来很大压力。导致系统崩溃。
如何避免?
- 在缓存失效后,通过加锁或者队列来控制读数据库写缓存的线程数量。比如对某个key只允许一个线程查询数据和写缓存,其他线程等待。
- 做二级缓存,A1为原始缓存,A2为拷贝缓存,A1失效时,可以访问A2,A1缓存失效时间设置为短期,A2设置为长期
- 不同的key,设置不同的过期时间,让缓存失效的时间点尽量均匀。
彻底掌握Redis需要学习的知识点有哪些呢?
01-深入透彻完整解析REDIS脑图
02-redis面试题答案解析
- redis过期策略都有哪些? LRU算法知道吗?写-下java代码实现?
- 使用redis如何设计分布式锁?说一下实现思路? 使用zk可以吗?如何实现?这两种有什么区别?
- redis主从复制如何实现的? redis 的集群档式如何实现? redis 的key是如何寻址的?
- Redis的数据淘汰策略有哪些
- ......
redis面试题答案解析
03-Redis深度历险核心原理和应用实践PDF
所谓「授人以鱼不若授人以渔」,本小册的初衷和目标就是帮助后端开发者较为深入的理解Redis背后的原理和实践经验,做到知其然也知其所以然,为未来进阶成长为架构师做好准备。
Redis深度历险核心原理和应用实践PDF
Redis深度历险核心原理和应用实践PDF
Redis深度历险核心原理和应用实践PDF
如果您需要这份学习路线图+redis面试知识点+Redis深度历险核心原理和应用实践PDF的话,我已经打包好成一份文档了,需要的小伙伴一键三联(点赞+收藏+关注)后直接添加微信:mxh5261 即可免费获取!