使用GDB跟踪redis源代码执行get命令的过程

1. reids 命令的执行原理

抓包: 抓取协议内容:

客户端与服务器之间遵循着固定的协议

我们使用tcpdump抓取6379端口的内容,通过设置set zjx "alpha"

抓取到数据包的内容   发送的是  RESP “set”  "zjx"  "alpha"

2. 使用GDB调试工具跟踪 命令  get  zjx 

下面比较重要的几个结构体:

GDB打印的内容:

在服务器初始化时,会根据下面这个表创建一个字典??

int processCommand(client *c) {   //下面根据名字get去查找 返回的是一个redisCommand结构体

}

在这里根据客户端传递来的命令进行调用

上面这句执行命令调用了getCommand

服务器 rediscommand  命令的入口,会根据解析到的get ::  getCommand去执行相关的代码

 

  

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值