最近在看 Redis 客户端部分的代码,结合 《Redis设计与实现》 写篇文章记录下收获。
redis-cli.c的main()函数中,未提供命令时会启动交互模式,交互模式的具体逻辑在repl()函数中,repl()中使用while循环读取命令,可以输入quit或exit退出,clear命令清屏等。。。
issueCommandRepeat()主要调用cliSendCommand(),把输入的命令拼装成协议的格式,存到context->obuf中,然后调用cliReadReply()发送请求并获取响应,