面试过大厂的小伙伴,想必都遇到过如下问题:
- Redis 常见的性能问题有哪些?该如何解决?——性能相关
- Redis 缓存的雪崩、击穿、穿透到底是什么意思?如何应对?——缓存相关
- Redis 主从集群常见的问题有哪些?该如何解决?——可用性相关
- 现有 Redis 实例,保存数量 6GB,未来预计会扩展到 32GB,请你提供一个解决方案,并分析它优点和潜在问题?——可扩展性相关
这些问题回答的怎么样想必你自己还是很清楚的,现在不少大厂关于 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 原理。
原理篇
集群 &拓展篇
源码篇
应用篇
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作为如今最火的NoSQL数据库,在不少大厂面试中都会涉及到,大家都知道Redis学得好,面试肯定是加分项,但当面试官问起时,却对Redis一问三不知,那就只有被淘汰的份了。完整版可添加小助理 ikt4435