82 lines
5.7 KiB
Markdown
82 lines
5.7 KiB
Markdown
|
# Redis源码剖析与实战
|
|||
|
|
|||
|
## 你将获得
|
|||
|
|
|||
|
* 从源码角度理解Redis系统设计思路
|
|||
|
* 经典C语言的开发技巧
|
|||
|
* 掌握计算机系统设计思想
|
|||
|
* Redis高频面试题目解析
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## 讲师介绍
|
|||
|
|
|||
|
蒋德钧,中科院计算所副研究员,长期致力于研究Redis,有15年云计算系统、存储系统和键值数据库的研发经验和技术积累。他还和蚂蚁金服、百度、华为、中兴等公司,围绕键值数据库开展过多种研制与优化项目合作,具有非常丰富的Redis实战经验。
|
|||
|
|
|||
|
另外,他在键值数据库方面,还先后开发混合内存键值数据库HiKV、面向高速SSD的高性能键值数据库LightKV等,在顶级国际会议上发表论文十余篇,申请NVM(非易失内存)相关专利二十多项。
|
|||
|
|
|||
|
同时,他也是极客时间《Redis核心技术与实战》课程的作者。
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## 课程介绍
|
|||
|
|
|||
|
说实话,平常我们在基于Redis做应用开发的时候,可能只是把它作为一个缓存系统或是数据库来存取数据,并不会接触到源码层面的东西。
|
|||
|
|
|||
|
但实际上,我们在使用或运维Redis的时候,经常会面临Redis性能变差、Redis实例故障等会影响到业务应用运行的问题。再者,经历过大厂面试的人也知道,很多互联网公司在招聘资深技术岗时,都会问一些跟Redis相关的考点问题。
|
|||
|
|
|||
|
这些问题怎么解决、怎么回答,其实考验的就是我们对Redis底层源码的掌握程度。但是,阅读源码,你可能觉得想想都是一件很难的事情:我是想读Redis源码,但是总感觉无从下手,或者是无所适从,结果最后就不了了之了。
|
|||
|
|
|||
|
其实,你之所以“无从下手”的原因,是缺少了代码结构的全景图;而出现“无所适从”的问题,是缺少阅读目标的牵引和基本原理的支撑。**简单来说,就是你没有掌握科学、高效的代码阅读方法。**
|
|||
|
|
|||
|
所以在这门课程中,蒋德钧老师就会分享他实际阅读Redis源码总结出来的经验和方法,帮助你先从整体上掌握Redis源码的结构,也就是形成一幅Redis源码全景图。
|
|||
|
|
|||
|
![](https://static001.geekbang.org/resource/image/59/35/5975c57d9ac404fe3a774ea28a7ac935.jpg)
|
|||
|
|
|||
|
然后,蒋老师会带你细分Redis的各大功能特性,梳理出Redis功能模块的主线逻辑,让你有目标、更高效地阅读和学习代码,进一步掌握Redis不同功能特性的设计与实现思路。并且在阅读代码的过程中,还会带你体会和掌握关键源码对应的计算机系统设计思想,从而你也可以把这些设计思想应用到自己的系统开发中。
|
|||
|
|
|||
|
### 课程模块设计
|
|||
|
|
|||
|
课程主体划分为以下6大模块。
|
|||
|
|
|||
|
* **数据结构**:你会学习到Redis主要数据结构的设计思想和实现,包括字符串的实现方法、内存紧凑型结构的设计、哈希表性能优化设计,以及ziplist、quicklist、listpack、跳表的设计与实现等。
|
|||
|
* **网络通信与执行模型**:你会掌握Redis server的启动流程、高性能网络通信设计与实现、事件驱动框架的设计与实现、Redis线程类型的设计和优化等。
|
|||
|
* **缓存**:你会了解常见的缓存替换算法是如何从原理转变为代码的,从而更深刻地理解Redis实现缓存算法的设计思路。
|
|||
|
* **可靠性保证**:你会掌握RDB、AOF的具体实现,分布式系统中Raft一致性协议的设计实现,以及故障切换的关键代码实现等代码设计思路。
|
|||
|
* **切片集群**:你会学习到Redis切片集群中关键机制的设计与实现,包括Gossip通信协议、请求重定向、数据迁移等,并帮你搞懂面试中关于构建提升Redis使用可扩展性的解题思路。
|
|||
|
* **编程技巧**:你会学习和掌握Redis源码中使用的一些编程技巧,并可以应用到自己的程序开发中。
|
|||
|
|
|||
|
> 课程中如果没有特殊说明,老师介绍的源码都是基于 Redis 5.0.8 版本的。
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## 课程目录
|
|||
|
|
|||
|
![](https://static001.geekbang.org/resource/image/09/24/09677e4a46d5981241821e12988fc924.jpg)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## 特别放送
|
|||
|
|
|||
|
#### 免费领取福利
|
|||
|
|
|||
|
[![](https://static001.geekbang.org/resource/image/69/dc/69c52d08278a2164dc5b061ba342a5dc.jpg?wh=960x301)](https://time.geekbang.org/article/427012)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#### 限时活动推荐
|
|||
|
|
|||
|
[![](https://static001.geekbang.org/resource/image/67/a0/6720f5d50b4b38abbf867facdef728a0.png?wh=1035x360)](https://shop18793264.m.youzan.com/wscgoods/detail/2fmoej9krasag5p?dc_ps=2913145716543073286.200001)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## 订阅须知
|
|||
|
|
|||
|
1. 订阅成功后,推荐通过“极客时间”App端、Web端学习。
|
|||
|
2. 本专栏为虚拟商品,交付形式为图文+音频,一经订阅,概不退款。
|
|||
|
3. 订阅后分享海报,每邀一位好友订阅有现金返现。
|
|||
|
4. 戳此[先充值再购课更划算](https://shop18793264.m.youzan.com/wscgoods/detail/2fmoej9krasag5p?scan=1&activity=none&from=kdt&qr=directgoods_1541158976&shopAutoEnter=1),还有最新课表、超值赠品福利。
|
|||
|
5. 企业采购推荐使用“[极客时间企业版](https://b.geekbang.org/?utm_source=geektime&utm_medium=columnintro&utm_campaign=newregister&gk_source=2021020901_gkcolumnintro_newregister)”便捷安排员工学习计划,掌握团队学习仪表盘。
|
|||
|
6. 戳此[申请学生认证](https://promo.geekbang.org/activity/student-certificate?utm_source=geektime&utm_medium=caidanlan1),订阅课程享受原价5折优惠。
|
|||
|
7. 价格说明:划线价、订阅价为商品或服务的参考价,并非原价,该价格仅供参考。未划线价格为商品或服务的实时标价,具体成交价格根据商品或服务参加优惠活动,或使用优惠券、礼券、赠币等不同情形发生变化,最终实际成交价格以订单结算页价格为准。
|