文章分类 - 极客时间
摘要:你好,我是蒋德钧。 Redis本身已经给我们提供了丰富的数据类型和数据读写功能,而且,Redis实现了基于IO复用的网络框架、数据主从复制和故障恢复机制,以及数据切片集群,这些功能通常都是后端系统所需的核心功能。 那么,当我们在实际应用中,既希望能用上Redis已经实现的核心功能,又需要新增一些额外
阅读全文
摘要:你好,我是蒋德钧。 我们知道,Redis的一个显著特征就是能提供低延迟的数据访问。而如果Redis在运行过程中变慢了,我们就需要有方法能监控到哪些命令执行变慢了。更进一步的需求,就是我们需要有方法监控到,是Redis运行过程中的哪些事件导致Redis变慢了。这样一来,我们就既可以检查这些慢命令,分析
阅读全文
摘要:你好,我是蒋德钧。 我们知道,Redis的一个显著特征就是能提供低延迟的数据访问。而如果Redis在运行过程中变慢了,我们就需要有方法能监控到哪些命令执行变慢了。更进一步的需求,就是我们需要有方法监控到,是Redis运行过程中的哪些事件导致Redis变慢了。这样一来,我们就既可以检查这些慢命令,分析
阅读全文
摘要:如何阅读 Redis 源码? 在这篇文章中, 我将向大家介绍一种我认为比较合理的 Redis 源码阅读顺序, 希望可以给对 Redis 有兴趣并打算阅读 Redis 源码的朋友带来一点帮助。 第 1 步:阅读数据结构实现 刚开始阅读 Redis 源码的时候, 最好从数据结构的相关文件开始读起, 因为
阅读全文
摘要:你好,我是蒋德钧。 从今天开始,我们就进入了这门课程的最后一个模块,也就是“编程技巧模块”。Redis作为一个广泛使用的系统,除了它自身的功能实现和性能优化值得我们学习以外,它源码中的编程技巧也同样值得我们去了解和掌握。 在这个模块中,我会带你学习Redis在循环缓冲区、监控、功能扩展模块等方面的设
阅读全文
摘要:你好,我是蒋德钧。 上节课,我给你介绍了Redis Cluster节点处理命令的过程。现在你知道,在这个过程中,节点会调用getNodeByQuery函数检查访问的key所属的节点,如果收到命令的节点并不是key所属的节点,那么当前节点就会生成CLUSTER_REDIR_MOVED或者CLUSTER
阅读全文
摘要:你好,我是蒋德钧。 在上节课一开始我给你介绍了,我们在Redis Cluster这个模块中会学习三部分内容:节点间如何传递信息和运行状态、节点如何处理命令,以及数据如何在节点间迁移。那么通过上节课的学习,现在我们已经了解了Gossip协议的基本实现,也就是支持集群节点间信息和运行状态传递的数据结构、
阅读全文
摘要:你好,我是蒋德钧。 从这节课开始,我们又将进入一个新的模块:“Redis Cluster”模块。在这个模块中,我会带你了解Redis Cluster的关键功能实现,包括了Gossip协议通信、集群关键命令和数据迁移等机制的设计与实现。 通过这些课程的学习,一方面,你可以深入了解Redis是如何完成集
阅读全文
摘要:你好,我叫曾轼麟,目前在广州一家互联网公司,从事互动社交业务领域中的服务端开发工作。 我从《Redis核心技术与实战》的时候,就开始跟随蒋老师的脚步,一直在学习Redis相关的知识。在这个过程中,我收获了很多新的认知,也对Redis的使用及其底层实现有了不一样的理解,所以,很高兴能在这里跟你分享我学
阅读全文
摘要:你好,我是蒋德钧。今天的加餐课程,我来和你聊聊Redis对损坏的RDB和AOF文件的处理方法。 我们知道,Redis为了提升可靠性,可以使用AOF记录操作日志,或者使用RDB保存数据库镜像。AOF文件的记录和RDB文件的保存都涉及写盘操作,但是,如果在写盘过程中发生了错误,就会导致AOF或RDB文件
阅读全文
摘要:你好,我是蒋德钧,欢迎来到课程的加餐环节。 我们的课程到了今天,已经过了一大半了,再加上我在第一季和你分享的内容,我们已经围绕着Redis的技术原理和源代码分析学习了七十多节课。这里我想先感谢你的坚持学习,也希望在后半部分的学习旅途中,你能一如既往地同我一起深入剖析Redis源码,理解Redis的底
阅读全文
摘要:你好,我是Kaito,也是两季Redis课程的课代表。今天,我想来和你分享一下我读源码的经验,希望能助力你更好地学习Redis源码。 首先,一提到读源码,很多人都会比较畏惧,认为读源码是高手才会做的事情。可能遇到问题时,他们更倾向于去找别人分享的答案。但往往很多时候,自己查到的资料并不能帮助解决所有
阅读全文
摘要:你好,我是蒋德钧。 咱们的课程已经更新过半了,在前面几个模块里,我带你从源码层面,分别了解和学习了Redis的数据结构、事件驱动框架和缓存算法的具体实现过程,相信你现在对Redis的数据类型和运行框架有了更加深入的认识。不过,阅读源码确实是一个比较烧脑的任务,需要你多花些时间钻研。所以,今天这节课,
阅读全文
摘要:你好,我是蒋德钧。 在前面两节课,我们学习了哨兵工作的基本过程:哨兵会使用sentinelRedisInstance结构体来记录主节点的信息,在这个结构体中又记录了监听同一主节点的其他哨兵的信息。那么,一个哨兵是如何获得其他哨兵的信息的呢? 这其实就和哨兵在运行过程中,使用的发布订阅(Pub/Sub
阅读全文
摘要:你好,我是蒋德钧。 上节课,我给你介绍了Raft协议的基本流程,以及哨兵实例工作的基本过程。哨兵是通过serverCron函数的周期性执行,进而在serverCron中调用sentinelTimer函数,实现周期性处理哨兵相关的时间事件。而sentinelTimer函数处理的时间事件,就包括了对哨兵
阅读全文
摘要:你好,我是蒋德钧。 在上节课,我们了解了哨兵实例的初始化过程。哨兵实例一旦运行后,会周期性地检查它所监测的主节点的运行状态。当发现主节点出现客观下线时,哨兵实例就要开始执行故障切换流程了。 不过,我们在部署哨兵实例时,通常会部署多个哨兵来进行共同决策,这样就避免了单个哨兵对主节点状态的误判。但是这同
阅读全文
摘要:你好,我是蒋德钧。这节课,我们一起来看看Redis是如何在源码中实现哨兵机制的。 我们知道,Redis主从复制是保证Redis可用性的一个重要手段。而一旦Redis主节点发生故障,哨兵机制就会执行故障切换。这个故障切换过程实现起来其实比较复杂,涉及了哨兵Leader选举、新主节点选举和故障切换等关键
阅读全文
摘要:你好,我是蒋德钧。这节课,我想跟你聊聊Redis是如何基于状态机的设计思路,来实现主从复制的。 主从复制技术我们应该都比较熟悉,因为在使用Redis或MySQL数据库时,我们经常会使用主从复制来实现主从节点间的数据同步,以此提升服务的高可用性。 从原理上来说,Redis的主从复制主要包括了全量复制、
阅读全文
摘要:你好,我是蒋德钧。 在上节课,我给你介绍了AOF重写过程,其中我带你重点了解了AOF重写的触发时机,以及AOF重写的基本执行流程。现在你已经知道,AOF重写是通过重写子进程来完成的。 但是在上节课的最后,我也提到了在AOF重写时,主进程仍然在接收客户端写操作,那么这些新写操作会记录到AOF重写日志中
阅读全文
摘要:你好,我是蒋德钧。 我们知道,Redis除了使用内存快照RDB来保证数据可靠性之外,还可以使用AOF日志。不过,RDB文件是将某一时刻的内存数据保存成一个文件,而AOF日志则会记录接收到的所有写操作。如果Redis server的写请求很多,那么AOF日志中记录的操作也会越来越多,进而就导致AOF日
阅读全文

浙公网安备 33010602011771号