You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
5.7 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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. 价格说明:划线价、订阅价为商品或服务的参考价,并非原价,该价格仅供参考。未划线价格为商品或服务的实时标价,具体成交价格根据商品或服务参加优惠活动,或使用优惠券、礼券、赠币等不同情形发生变化,最终实际成交价格以订单结算页价格为准。