redis源码学习分析
文章平均质量分 77
Eshin_Ye
这个作者很懒,什么都没留下…
展开
-
redis源码之:目录导航
redis源码系列解读笔记,主要偏重个人比较感兴趣的部分内容,后续有其他新的兴趣点,将持续更新。本人debug用的cento7的图形界面系统,cento7中安装clion2020.1。redis源码本身的注释是很完善的,在理解源码原理的时候难度会减少很多。redis版本6.2.8。原创 2024-02-07 14:38:56 · 502 阅读 · 0 评论 -
redis源码之:cluster集群故障处理
在[redis源码之:集群创建与节点通信(1)](https://blog.csdn.net/qq_22351805/article/details/135990455)分析**clusterCron定时任务**及在[redis源码之:集群创建与节点通信(2)](https://blog.csdn.net/qq_22351805/article/details/136043142)分析**clusterReadHandler处理ping请求与pong响应时(clusterProcessPacket)**时,原创 2024-02-07 13:51:24 · 907 阅读 · 0 评论 -
redis源码之:集群创建与节点通信(2)
在上一篇我们可知,在集群中,cluster节点之间,通过meet将对方加入到本方的cluster->nodes列表中,并在后续过程中,不断通过clusterSendPing发送ping请求,使用gossip协议共享集群节点信息并通过clusterReadHandler处理对方发送的ping请求和pong响应。本文,来继续看看,clusterSendPing和clusterReadHandler的处理逻辑。原创 2024-02-06 15:08:40 · 788 阅读 · 0 评论 -
redis源码之:集群创建与节点通信(1)
这里主要是对主动请求过来的客户端的处理,这里设置的clusterReadHandler主要是处理对方发送过来的请求,后面clusterCron中会主动去连接别的node,然后也是设置clusterReadHandler处理,不过是处理对方的响应。在此处主要还是对通过cluster meet命令加到本方的cluster-nodes的节点,发送meet请求到对方,让对方也认识自己(把自己加到对方的cluster->nodes。D向A发送meet请求,最终通过gossip协议,达成各节点信息最终一致。原创 2024-02-05 15:46:14 · 958 阅读 · 0 评论 -
redis源码之:redis-cli 集群命令
在集群命令执行前,需要先按上一章节的方式,启动四个新的redis节点,但不要执行cluster create命令,保持四个节点独立。redis-cli的命令执行大抵流程差不多,下面以。原创 2024-01-31 15:26:39 · 494 阅读 · 0 评论 -
redis源码之:clion搭建cluster环境
cluster集群通常每个node节点都是一主N从的模式,此处为简化环境搭建,所有node节点均只有一个主节点。在clion环境中,为方便debug,需要通过配置多个cmake application实现redis-server、redis-cli等源码debug模式启动。原创 2024-01-26 17:11:14 · 439 阅读 · 0 评论 -
redis源码之:多线程与读写事件处理
多线程读写任务,并行读数据,串行执行命令原创 2024-01-17 16:45:21 · 903 阅读 · 0 评论 -
redis源码之:客户端命令执行Command
读取数据:在创建conn的时候,就将连接的type设置为Socket。在call方法里,调用具体的command对应处理方法。原创 2024-01-15 14:50:16 · 450 阅读 · 0 评论 -
redis源码之:事件驱动epoll
从上面的分析可知,当客户端tcp连接创建并注册到epoll后,当该tcp连接有用户请求数据写入并可读,在epoll_wait中获取到事件触发connSocketEventHandler(参考二中循环查看epoll_wait的处理过程),该方法中会取出clientData,从上面的分析可知,clientData就是个connection实例,其中有read_handler的指针,以读数据为例,指向readQueryFromClient。通过server.c中aeMain(server.el);原创 2024-01-12 16:55:47 · 473 阅读 · 0 评论 -
redis源码之:扩容后的dictScan遍历顺序与JDK的concurrentHashMap 扩容机制
Redis扩容,dictScan遍历顺序原创 2023-06-27 00:13:02 · 299 阅读 · 0 评论 -
redis源码之:字典dict
redis字典,expand扩容,rehash原创 2023-06-19 16:22:47 · 122 阅读 · 0 评论 -
redis源码之:跳跃表skiplist
跳跃表实现原理,RandomLevel,zslinsert原创 2023-06-13 16:38:54 · 741 阅读 · 0 评论 -
redis源码之:字符串SDS
redis源码解读,sds创建、sds扩缩容,释放原创 2023-02-22 10:11:05 · 330 阅读 · 0 评论