1970-01-01
24 从哨兵Leader选举学习Raft协议实现(下)上节课,我给你介绍了 Raft 协议的基本流程,以及哨兵实例工作的基本过程。哨兵是通过 serverCron 函数的周期性执行,进而在 serverCron 中调用 sentinelTimer 函...
24 从哨兵Leader选举学习Raft协议实现(下)上节课,我给你介绍了 Raft 协议的基本流程,以及哨兵实例工作的基本过程。哨兵是通过 serverCron 函数的周期性执行,进而在 serverCron 中调用 sentinelTimer 函...
26 从Ping-Pong消息学习Gossip协议的实现从这节课开始,我们又将进入一个新的模块:“Redis Cluster”模块。在这个模块中,我会带你了解 Redis Cluster 的关键功能实现,包括了 Gossip 协议通信、集群关键命令和...
27 从MOVED、ASK看集群节点如何处理命令?在上节课一开始我给你介绍了,我们在 Redis Cluster 这个模块中会学习三部分内容:节点间如何传递信息和运行状态、节点如何处理命令,以及数据如何在节点间迁移。那么通过上节课的学习,现在我们已经...
28 Redis Cluster数据迁移会阻塞吗?上节课,我给你介绍了 Redis Cluster 节点处理命令的过程。现在你知道,在这个过程中,节点会调用 getNodeByQuery 函数 检查访问的 key 所属的节点,如果收到命令的节点并不是...
29 如何正确实现循环缓冲区?从今天开始,我们就进入了这门课程的最后一个模块,也就是“编程技巧模块”。Redis 作为一个广泛使用的系统,除了它自身的功能实现和性能优化值得我们学习以外,它源码中的编程技巧也同样值得我们去了解和掌握。 在这个模块中,我...
31 从Module的实现学习动态扩展功能Redis 本身已经给我们提供了丰富的数据类型和数据读写功能,而且,Redis 实现了基于 IO 复用的网络框架、数据主从复制和故障恢复机制,以及数据切片集群,这些功能通常都是后端系统所需的核心功能。 那么,...
32 如何在一个系统中实现单元测试?今天这节课,我来和你聊聊 Redis 中的单元测试。 单元测试通常是用来测试一个系统的某个特定功能模块,通过单元测试,我们可以检测开发的功能模块是否正常。对于一个像 Redis 这样包含很多功能模块的系统来说,单元...
30 如何在系统中实现延迟监控?我们知道,Redis 的一个显著特征就是 能提供低延迟的数据访问 。而如果 Redis 在运行过程中变慢了,我们就需要有方法能监控到哪些命令执行变慢了。更进一步的需求,就是我们需要有方法监控到,是 Redis 运行过程...
结束语 Redis源码阅读,让我们从新开始不知不觉中,我和你又一起走过了 3 个多月的时光。在这 3 个多月的时间里,我和你一起并肩作战,去学习和了解了 Redis 的源码。跟第一季的课程内容相比,这一季学习的内容的确更有难度,也更加需要你能静下心来...
01 搭建学习环境准备篇本文主要分如下几个部分展开: Linux 服务器安装 RocketMQ、RocketMQ-Console IDEA 中搭建可调试环境 Linux 安装 RocketMQ、RocketMQ-Console安装 RocketM...