
Redis源码
Tiger-1985
我还录制了视频,关注公众号 “跟哥一起学python”(ID: tiger-python),可直接观看。也可在公众号下载全套实例源码。这个我个人制作的教程,完全免费分享交流,请勿拿去用于商业目的。
展开
-
Redis源码解析 - eventloop(redis调度的核心)
相信大家在很多关于Redis的文章里面都看过一句话:redis是单进程的,所以它不用考虑那么多多进程编程带来的麻烦。这话其实不完全正确。如果你读过Redis源码,你肯定知道,Redis存在一个主进程,同时还会有多个子进程。只是它的子进程通常是用于处理某个临时性的任务(比如RDB持久化过程、AOF的rewrite、主备之间的全同步等等,都是比较耗时的任务),一旦任务处理完就销毁了。今天,我们要讨论的问题是,在这个主进程里面,它的调度核心 - eventloop。写过C语言的都清楚,任何一个C语言程序的原创 2020-08-23 16:32:38 · 1849 阅读 · 1 评论 -
Redis源码详解 - Replication(主备)流程
HA(高可用性)是数据库的最基本需求,而主备冗余则是HA最基础的解决方案。Redis里面,主备通常使用Master-Replica来表述。通用主备方案的实现,涉及到以下几个关键问题:主备感知:主备之间要建立某种关联(主备信令通道),并且要明确判断主备角色(主备裁决)。 数据同步: 首先要明确一点,主备之间的数据同步不是必须的,这取决于系统的HA的要求有多高。这又可以分为:热备(hot-standby)、冷备。先说冷备,备份节点不需要同步任何主节点的数据,待备升主之后,新的主节点再想办...原创 2020-08-16 00:09:45 · 2202 阅读 · 0 评论 -
Redis源码思考 - Cluster节点之间的handshake
Redis支持Cluster,那么必然要有一个协议来支撑这些Cluster node之间进行状态数据同步。Redis采用了gossip,关于gossip,网上有很多文章,可以去搜来看。gossip的特点是去中心化,并且尽量减小信息扩散带来的网络消息爆炸。我理解的gossip,是一种分布式系统状态同步(扩散)的实现思想,我只搜到了的各种文章都是些gossip实现的算法。我没有看到gossip的标准协议,所以Redis的gossip应该是基于gossip思想的私有协议。好,回到正题。gossip的基础,原创 2020-08-11 20:19:30 · 1618 阅读 · 0 评论