240 发简信
IP属地:河南
  • 【RocketMQ】【源码】消息的存储

    Broker对消息的处理 BrokerController初始化的过程中,调用registerProcessor方法注册了处理器,在注册处理器的代码中可以看到创建了处理消息发...

  • 120
    【Redis】Redis Cluster-集群数据迁移

    Redis通过对KEY计算hash,将KEY映射到slot,集群中每个节点负责一部分slot的方式管理数据,slot最大个数为16384。在集群节点对应的结构体变量clust...

  • 120
    【Redis】Redis Cluster-集群请求命令处理

    集群请求命令处理 在Redis的命令处理函数processCommand(server.c)中有对集群节点的处理,满足以下条件时进入集群节点处理逻辑中: 启用了集群模式,通过...

  • 120
    【Redis】Redis Cluster-集群故障转移

    集群故障转移 节点下线 在集群定时任务clusterCron中,会遍历集群中的节点,对每个节点进行检查,判断节点是否下线。与节点下线相关的状态有两个,分别为CLUSTER_N...

  • 120
    【Redis】Redis Cluster-初始化及PING消息的发送

    Cluster消息类型定义 在Redis初始化服务initServer函数中,调用aeCreateTimeEvent注册了时间事件,周期性的执行serverCron函数,在s...

  • 120
    【Redis】哨兵集群-客观下线

    在sentinelHandleRedisInstance函数中,如果是主节点,需要做如下处理: 节点的状态定义 客观下线 sentinelCheckObjectivelyDo...

  • 120
    【Redis】哨兵集群-哨兵初始化和主观下线

    在的redis启动函数main(server.c文件)中,对哨兵模式进行了检查,如果是哨兵模式,将调用initSentinelConfig和initSentinel进行初始化...

  • 120
    【Redis】网络IO-事件驱动框架源码分析(多线程)

    IO线程初始化 Redis在6.0版本中引入了多线程,提高IO请求处理效率。 在Redis Server启动函数main(server.c文件)中初始化服务之后,又调用了In...

  • 120
    【Redis】网络IO-事件驱动框架源码分析(单线程)

    aeEventLoop初始化 在server.c文件的initServer函数中,对aeEventLoop进行了初始化: 调用aeCreateEventLoop函数创建aeE...

  • 120
    【Redis】基础数据结构-quicklist

    Redis List 在Redis3.2版之前,Redis使用压缩列表和双向链表作为List的底层实现。当元素个数比较少并且元素长度比较小时,Redis使用压缩列表实现,否则...

  • 120
    【Redis】基础数据结构-skiplist跳跃表

    有序集合Sorted Set zadd zadd用于向集合中添加元素并且可以设置分值,比如添加三门编程语言,分值分别为1、2、3: zrange zrange根据分值区间返回...

  • 120
    【Redis】基础数据结构-ziplist压缩列表

    压缩列表 压缩列表是列表和哈希表的底层实现之一: 如果一个列表只有少量数据,并且数据类型是整数或者比较短的字符串,redis底层就会使用压缩列表实现。 如果一个哈希表只有少量...

  • 120
    【Redis】基础数据结构-字典

    Redis 字典 基本语法 字典是Redis中的一种数据结构,底层使用哈希表实现,一个哈希表中可以存储多个键值对,它的语法如下,其中KEY为键,field和value为值(也...

  • 120
    【Redis】基础数据结构-简单动态字符串SDS

    C语言字符串 C语言中使用char*字符数组表示字符串,'\0'来标记一个字符串的结束,不过在使用的过程中我们不需要显式的在字符串中加入'\0'。 存在问题 1.二进制安全 ...