- 课程目录
- 课程介绍
-
在线阅读:开篇词 | 这样学Redis,才能技高一筹
如果你只是急于解决这些一个个细微的问题,你的Redis使用能力就很难得到质的提升。
-
01 | 基本架构:一个键值数据库包含什么?
如果我们想要深入理解和优化Redis,就必须要对它的总体架构和关键模块有一个全局的认知。
-
02 | 数据结构:快速的Redis有哪些慢操作?
一提到Redis,我们的脑子里马上就会出现一个词:“快。”但是你有没有想过,Redis的快,到底是快在哪里呢?
-
03 | 高性能IO模型:为什么单线程Redis能那么快?
严格来说,Redis并不是单线程,但是我们一般把Redis称为单线程高性能。
-
04 | AOF日志:宕机了,Redis如何避免数据丢失?
AOF方法通过逐一记录操作命令,在恢复时再逐一执行命令的方式,保证了数据的可靠性。
-
05 | 内存快照:宕机后,Redis如何实现快速恢复?
有没有既可以保证可靠性,还能在宕机时实现快速恢复的方法呢?这就是内存快照。
-
06 | 数据同步:主从库如何实现数据一致?
多实例之间的数据如何保持一致呢?数据读写操作可以发给所有的实例吗?
-
07 | 哨兵机制:主库挂了,如何不间断服务?
无论是写服务中断,还是从库无法进行数据同步,都是不能接受的。所以,如果主库挂了,我们就需要运行一个新主库
-
08 | 哨兵集群:哨兵挂了,主从库还能切换吗?
一旦多个实例组成了哨兵集群,即使有哨兵实例出现故障挂掉了,其他哨兵还能继续协作完成主从库切换的工作。
-
09 | 切片集群:数据增多了,是该加内存还是加实例?
随着用户或业务规模的扩展,不可避免地要遇到保存大量数据的情况。而切片集群,就是一个非常好的解决方案。
-
10 | 第1~9讲课后思考题答案及常见问题答疑
今天,我们来聊一聊课后题答案,并且挑选一些典型问题,集中进行一次讲解,希望可以解决你的困惑。
-
11 | “万金油”的String,为什么不好用了?
如果你在使用String类型时也遇到了内存空间消耗较多的问题,就可以尝试下今天的解决方案了。
-
12 | 有一亿个keys要统计,应该用哪种集合?
要想选择合适的集合,我们就得了解常用的集合统计模式。这节课,我就给你介绍集合类型常见的四种统计模式。
-
13 | GEO是什么?还可以定义新的数据类型吗?
在统计海量数据时,五种基本数据类型的内存开销很大,而且对于一些特殊的场景,它们是无法支持的,那该怎么办呢?
-
14 | 如何在Redis中保存时间序列数据?
时间序列数据的特点是没有严格的关系模型,记录的信息可以表示成键和值的关系,Redis正好可以满足这类数据的存取需求。
-
15 | 消息队列的考验:Redis有哪些解决方案?
关于是否用Redis做消息队列的问题,不能一概而论,我们需要考虑业务层面的数据体量,以及对性能、可靠性、可扩展性的需求。
-
16 | 异步机制:如何避免单线程模型的阻塞?
我们必须要重视所有可能影响Redis性能的因素,不仅要知道具体的机制,提前准备好应对异常的方案。
-
17 | 为什么CPU结构也会影响Redis的性能?
如果不了解CPU对Redis的影响,就可能会遗漏一些调优方法,不能把Redis的性能发挥到极限。
-
18 | 波动的响应延迟:如何应对变慢的Redis?(上)
这节课,我给你介绍两个判断Redis变慢的方法。同时,还会跟你分享一下相应的解决方案。
-
19 | 波动的响应延迟:如何应对变慢的Redis?(下)
如果在排查时发现,Redis没有执行大量的慢查询命令,也没有同时删除大量过期keys,是不是就束手无策了呢?
-
20 | 删除数据后,为什么内存占用率还是很高?
明明做了数据删除,数据量已经不大了,为什么使用top命令查看,还会发现,Redis占用了很多内存呢?
-
21 | 缓冲区:一个可能引发“惨案”的地方
缓冲区是用来避免请求或数据丢失的“惨案”的,但也只有用对了,才能真正起到“避免”的作用。
-
22 | 第11~21讲课后思考题答案及常见问题答疑
课后思考题是一种很好地梳理重点内容、拓展思路的方式,所以,在接下来的课程里,希望你能多留言聊一聊你的想法。
-
23 | 旁路缓存:Redis是如何工作的?
这节课,我们来了解下缓存的特征和Redis适用于缓存的天然优势,以及Redis缓存的具体工作机制。
-
24 | 替换策略:缓存满了怎么办?
在这节课上,围绕着“缓存满了该怎么办”这一问题,介绍了缓存替换时的数据淘汰策略,以及被淘汰数据的处理方法。
-
25 | 缓存异常(上):如何解决缓存和数据库的数据不一致问题?
只要我们使用Redis缓存,就必然会面对缓存和数据库间的一致性保证问题,这也算是Redis缓存应用中的“必答题”了。
-
26 | 缓存异常(下):如何解决缓存雪崩、击穿、穿透难题?
缓存数据时可能会出现3个异常问题,这讲内容会说说这三个问题的表现、诱发原因以及解决方法。
-
27 | 缓存被污染了,该怎么办?
缓存污染一旦变得严重后,就会有大量不再访问的数据滞留在缓存中。
-
28 | Pika:如何基于SSD实现大容量Redis?
基于大内存的大容量实例在实例恢复、主从同步的过程中会引起一系列潜在问题,例如恢复时间增长、主从切换开销大、缓冲区易溢出。那该怎么办呢?
-
29 | 无锁的原子操作:Redis如何应对并发访问?
原子操作是指执行过程保持原子性的操作,而且原子操作执行时并不需要再加锁,实现了无锁操作。这样一来,既能保证并发控制,还能减少对系统并发性能的影响。
-
30 | 如何使用Redis实现分布式锁?
Redis本身可以被多个客户端共享访问,可以用来保存分布式锁,而且它的读写性能高,可以应对高并发的锁操作场景。
-
31 | 事务机制:Redis能实现ACID属性吗?
如果有些属性在一些场景下不能保证的话,很可能会导致数据出错。
-
32 | Redis主从同步与故障切换,有哪些坑?
这节课,我就向你介绍3个坑,分别是主从数据不一致、读到过期数据,以及不合理配置项导致服务挂掉。
-
33 | 脑裂:一次奇怪的数据丢失
这节课,我就结合我遇见的这个真实问题,带你一起分析和定位问题,帮助你掌握脑裂的成因、后果和应对方法。
-
34 | 第23~33讲课后思考题答案及常见问题答疑
今天,又到了我们的答疑时间,我们一起来学习下第23~33讲的课后思考题。同时,我还给你讲解两道典型问题。
-
35 | Codis VS Redis Cluster:我该选择哪一个集群方案?
关于Codis和Redis Cluster的选型考虑,我从四个维度给你提供一些建议,希望能帮助到你。
-
36 | Redis支撑秒杀场景的关键技术和实践都有哪些?
在实际秒杀活动进行时,库存查验和库存扣减是承受巨大并发请求压力的两个操作,同时,这两个操作的执行需要保证原子性。
-
37 | 数据分布优化:如何应对数据倾斜?
如果发生了数据倾斜,那么保存了大量数据或热点数据的实例的处理压力就会增大,速度变慢,甚至可能会导致内存资源耗尽而崩溃。
-
38 | 通信开销:限制Redis Cluster规模的关键因素
实例间的通信开销会随着实例规模增加而增大,在集群超过一定规模时,集群吞吐量反而会下降。
-
期中测试题 | 一套习题,测出你的掌握程度
我想给你分享一下我自己的学习方法。
-
期中测试题答案 | 这些问题,你都答对了吗?
今天,我来公布一下主观题的答案。
-
39 | Redis 6.0的新特性:多线程、客户端缓存与安全
今天,我来和你聊聊Redis 6.0中的几个关键新特性,包括面向网络处理的多IO线程、RESP 3协议的使用等。
-
40 | Redis的下一步:基于NVM内存的实践
我认为,Redis发展的下一步,就可以基于NVM内存来实现大容量实例,或者是实现快速持久化数据和恢复。
-
41 | 第35~40讲课后思考题答案及常见问题答疑
今天是我们最后一节答疑课,我会带你一起分析一下第35~40讲的课后思考题。同时,我还会给讲解两个典型问题
-
加餐(一)| 经典的Redis学习资料有哪些?
如果想要持续精进自己的技术,还需要不断丰富自己的知识体系,那么,阅读就是一个很好的方式。
-
加餐(二)| 用户Kaito:我是如何学习Redis的?
每个人学习Redis的方法都不同,多搜集一种方法,就多一种参考,来听听Kaito同学总结的Redis学习路径吧。
-
加餐(三)| 用户Kaito:我希望成为在压力中成长的人
今天,我再分享一下我的学习方法,包括领先一步的心理建设、事半功倍的学习方法以及提升效率的小技巧。
-
加餐(四) | Redis客户端如何与服务器端交换命令和数据?
如果要对Redis客户端进行二次开发(比如增加新的命令),我们就需要了解请求和响应涉及的命令、数据在客户端和服务器之间传输时,是如何编码的。
-
加餐(五) | Redis有哪些好用的运维工具?
我们在应用Redis时,经常会面临的运维工作包括Redis的运行状态监控,数据迁移,主从集群、切片集群的部署和运维。
-
加餐(六)| Redis的使用规范小建议
如果说之前的内容教会了你怎么用,那么今天的内容,就是帮助你用好Redis,尽量不出错。
-
加餐(七) | 从微博的Redis实践中,我们可以学到哪些经验?
俗话说“他山之石,可以攻玉”,学习掌握这些经验,可以帮助我们在自己的业务场景中更好地应用Redis。
-
期末测试 | 这些Redis核心知识,你都掌握了吗?
还等什么?快来测一测吧。
-
结束语 | 从学习Redis到向Redis学习
如果说我们之前一直在学习Redis本身,那么今天,我们来看看能向Redis学到什么。
课程介绍
618 狂欢 | 课程专属口令 你将获得 系统完善的 Redis 全景知识体系 经典 Redis 场景+案例实战贯穿解析 Redis 的复制原理、常见问题和故障处理方案 解锁大厂必问的 Redis 面试问题 讲师介绍...618 狂欢 | 课程专属口令
你将获得
- 系统完善的 Redis 全景知识体系
- 经典 Redis 场景+案例实战贯穿解析
- Redis 的复制原理、常见问题和故障处理方案
- 解锁大厂必问的 Redis 面试问题
讲师介绍
蒋德钧,中科院计算所副研究员,清华大学硕士,荷兰阿姆斯特丹 Vrije Universiteit 博士,长期致力于研究 Redis,与阿里、蚂蚁金服、百度、华为、中兴等公司开展多种项目合作,具有非常丰富的 Redis 实战经验。与此同时,还长期研究新型存储介质、键值数据库、存储系统、操作系统等,在顶级国际会议上发表论文十余篇,申请 NVM (非易失内存)相关专利二十多项。
课程介绍
Redis 作为具备高性能、高可靠和高可扩展性的典型键值数据库,是很多互联网公司的首选。大厂招聘的时候,不仅会要求面试者能简单使用 Redis,还要深入理解其底层实现原理,具备解决常见问题的能力。可以说,熟练掌握 Redis 是后端工程师的必备技能。
蒋德钧根据自己多年的研究以及教学经验,梳理了一套系统的 Redis 学习方法。他将纷繁复杂的 Redis 知识和问题归纳在“两大维度,三大主线”这个框架之中,希望帮你建立起系统观和全局观,从而带你彻底搞懂底层实现原理。
除此之外,蒋德钧还会具体分析常见的问题以及应对方案,讲解 Redis 在典型场景(比如缓存、秒杀)中的应用,让你能够快速掌握行之有效的实战经验,并应用在自己的 Redis 项目中,全方位提升你的实战能力。

课程主体分为 4 大模块。
- 基础篇:从构建一个键值数据库的关键架构入手,不仅带你建立起全局观,还帮你迅速抓住核心主线。除此之外,还会具体讲解数据结构、线程模型、网络框架、持久化、主从同步和切片集群等,帮你搞懂底层原理。
- 实践篇:重点从典型案例和常用场景两个维度介绍 Redis 的实战经验。在“案例”层面,会详细讲解数据结构的合理使用、避免请求阻塞和抖动、提升内存使用效率的关键技巧;在“场景”层面,会针对缓存和集群两大场景,透彻讲解缓存的基本原理,以及雪崩、穿透、污染等异常情况的应对方案,还会围绕集群方案优化、数据一致性、高并发访问等问题,分享具体可行的解决方案。
- 未来篇:围绕 Redis 6.0 的多线程等新特性进行讲解,还会介绍业界的最新探索,帮你提前掌握 Redis 的发展路线图,为未来的发展做好准备。
- 加餐篇:不定期更新,会介绍 Redis 的常用工具、客户端定制开发、经典的使用规范,还会带你解读大厂的 Redis 实践,进一步提升你的实战能力。
课程目录


