Redis 源码剖析与实战
深入源码底层实现,轻松通关 Redis 面试
蒋德钧  中科院计算所副研究员
专栏
已完结·共 47 讲
|
1.8w 人已学
|
收藏
对于 Redis 来说,它的主要工作,包括接收客户端请求、解析请求和进行数据读写等操作,都没有创建新线程来执行,所以,Redis 主要工作的确是由单线程来执行的,这也是我们常说 Redis 是单线程程序的原因
来自:12 | Redis真的是单线程吗?
6 人划过
updateDictResizePolicy 函数是用来启用或禁用 rehash 扩容功能的,这个函数调用 dictEnableResize 函数启用扩容功能的条件是:当前没有 RDB 子进程,并且也没有 AOF 子进程。这就对应了 Redis 没有执行 RDB 快照和没有进行 AOF 重写的场景。你可以参考下面给出的代码:
来自:03 | 如何实现一个性能优异的Hash表?
5 人划过
是否比要查找的 SDS 数据小。如果结点数据小于要查找的数据时,跳表仍然会继续访问该层上的下一个结点。
来自:05 | 有序集合为何能同时支持点查询和范围查询?
4 人划过
select 函数相比,poll 函数的改进之处主要就在于,它允许一次监听超过 1024 个文件描述符。但是当调用了 poll 函数后,我们仍然需要遍历每个文件描述符,检测该描述符是否就绪,然后再进行处理。
来自:09 | Redis事件驱动框架(上):何时使用select、poll、epoll?
4 人划过
而实际上,Redis 主要是通过两大方面的技术来提升内存使用效率的,分别是数据结构的优化设计与使用,以及内存数据按一定规则淘汰。
来自:04 | 内存友好的数据结构该如何细化设计?
3 人划过
在这个函数中,会调用 fork 函数创建一个 AOF 重写子进程,来实际执行重写操作。
来自:19 | AOF重写(上):触发时机与重写的影响
3 人划过
有效减少了在 ziplist 中新增或修改元素后,发生连锁更新的情况
来自:06 | 从ziplist到quicklist,再到listpack的启发
3 人划过
表示不同从节点在缓冲区中的当前读取位置
来自:29 | 如何正确实现循环缓冲区?
3 人划过
*精彩内容为该课程各文章中划线次数最多的内容
免费试读
讲师

蒋德钧

中科院计算所副研究员

蒋德钧,中科院计算所副研究员,长期致力于研究 Redis,有 15 年云计算系统、存储系统和键值数据库的研发经验和技术积累。他还和蚂蚁金服、百度、华为、中兴等公司,围绕键值数据库开展过多种研制与优化项目合作,具有非常丰富的 Redis 实战经验。 另外,他在键值数据库方面,还先后开...查看更多
编辑推荐
讲师的其他课程
Redis 核心技术与实战
蒋德钧
中科院计算所副研究员

53讲 | 81730 人已学习

¥68¥199
包含这门课的学习路径

Java工程师

29门课程 154.7w人学习
看过的人还看了
Redis 核心技术与实战
蒋德钧
中科院计算所副研究员

53讲 | 81730 人已学习

¥68¥199
MySQL 实战 45 讲
林晓斌
网名丁奇,前腾讯云数据库负责人

49讲 | 224925 人已学习

¥68¥199
数据结构与算法之美
王争
前 Google 工程师

81讲 | 283791 人已学习

¥68¥199
设计模式之美
王争
前 Google 工程师,《数据结构与算法之美》专栏作者

113讲 | 123455 人已学习

¥98¥299
左耳听风
陈皓
网名“左耳朵耗子”,资深技术专家

119讲 | 180992 人已学习

¥98¥399
从 0 开始学架构
李运华
网名“华仔”,前阿里资深技术专家(P9)

66讲 | 152610 人已学习

¥68¥199