大家好,我是Tom哥~
阿里P7技术专家,一个不喜欢内卷的程序员~
给大家送过年的干货了,硬不硬,自己看,😁😁😁
缓存一直是我们工作中的老朋友了,不管是常规功能架构还是各种大促活动,都离不开缓存的身影。
而众多的缓存框架中,Redis 又是一枝独秀,凭着这优异的性能、丰富的生态、活跃的社区、以及低成本的开发门槛,深受广大码仔的喜爱。
可以毫不客气的说,Redis 是我们的第一 “女友”,没有它我们的工作就会黯然失色。
既然 Redis 这么重要,那 Tom哥 就花了几个大周末,熬了几个大通宵,把Redis的核心技术点整理了个脑图,图太大了,文章后台上传报错,这里只能放了个缩略图,给大家直观感受下
下图 ↓↓↓↓ 只是部分内容,原图比这个大很多…大很多…大很多…
![](https://i-blog.csdnimg.cn/blog_migrate/86f8b6617e77e2c6d35582a1bc601087.png)
想要原图的可以私聊我微信,【chixuegao1234】 ,也可以扫描下方的二维码,微信加我
![](https://i-blog.csdnimg.cn/blog_migrate/8f0210c7e7c925481aec2664528a59f1.png)
接下来,我把一些核心内容做概要剖析:
Redis 特性
关于Redis 的单线程,当然这个单线程主要指网络 IO 和 数据读写操作是由一个线程完成,而数据清理,持久化,集群数据同步 ,额外创建其他线程
为什么采用单线程?
答案:避免多线程的并发锁控制问题;上下文切换的资源损耗;多线程开发代码复杂,可维护性差。
关于Redis 的特性,简单归纳为三块内容:
-
性能高,支持数十万的QPS
-
丰富的数据结构类型
-
支持 pub/sub 类型
Redis 为什么这么快?
![](https://i-blog.csdnimg.cn/blog_migrate/9cfa7765bbc4c92c1bd0ef7c774c0529.png)
Redis 的IO 模型
![](https://i-blog.csdnimg.cn/blog_migrate/6ffc04c1fc2dcb41372159313ec02984.png)
如何避免数据丢失?
![](https://i-blog.csdnimg.cn/blog_migrate/926b079d8e6f5e05b4fb6d5444cad520.png)
Redis 集群演化史
我们知道Redis的集群有三种方案:
-
主从模式
-
Sentinel(哨兵)模式
-
Redis Cluster模式
![](https://i-blog.csdnimg.cn/blog_migrate/d2f8200b0efe2ddc22377f9deb64360b.png)
Redis 主从数据同步
![](https://i-blog.csdnimg.cn/blog_migrate/2e620559161a4bbd23aa07bf90abce60.png)
Redis 主从节点宕机,如何处理?
![](https://i-blog.csdnimg.cn/blog_migrate/d7fff4510f0f02518b863eac7673cbb6.png)
我们主动删除了大量的缓存数据,但内存使用依然很高?
![](https://i-blog.csdnimg.cn/blog_migrate/8ea87f0e36a1a23cdd7ccc40a52967b9.png)
缓存内存空间不足,发生置换策略
![](https://i-blog.csdnimg.cn/blog_migrate/6bf274f325e4f9d043fe1d52ffe94c7a.png)
Redis 的事务机制
![](https://i-blog.csdnimg.cn/blog_migrate/978e0f5b96fac08d13b291b4f4373027.png)
Redis 的应用场景
![](https://i-blog.csdnimg.cn/blog_migrate/1474ab597146e4ab569f6cbc8bf3e944.png)
缓存的七大经典问题
![](https://i-blog.csdnimg.cn/blog_migrate/84dfd74dc6f8c0caf77f5725625ac873.png)
其他
![](https://i-blog.csdnimg.cn/blog_migrate/6d64618820150cb51a83a29a90fdbad8.png)
最后福利
关于Redis 缓存,之前也总结了一些文章,这里一并做了汇总,希望大家加深Redis的全面理解,工作使用中也能更加的得心应手。
文章列表:
3、高手过招, 为什么 Redis Cluster 是16384个槽位?
4、字节一面:Redis主节点的Key已过期,但从节点依然读到过期数据…
7、【硬核】秒杀活动技术方案,Redis申请32个G,被技术总监挑战了…
9、Redis 实战篇:通过 Geo 类型实现附近的人邂逅女神
13、Redis 高可用篇:Cluster 集群能支撑的数据有多大?
关于我:Tom哥,前阿里P7技术专家,出过专利,多年大厂实战经验。欢迎关注,我会持续输出更多经典原创文章,为你大厂助力。
欢迎小伙伴找Tom哥唠嗑聊天, 技术交流,围观朋友圈,人生打怪不再寂寞。
推荐阅读👍: 《我想去大厂列》(包含Java、MySQL、Redis、MQ消息队列、TCP网络、项目亮点、团队管理等)
推荐阅读👍: SpringBoot 生态系列,JPA、ElasticSearch、Kafka、Redis等几十个主流开源框架