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去执行相关的代码