初始化客户端
客户端使用了linenoise库, linenoise比较简单, 不需要任何配置,支持单行、多行模式,history命令查询,自动补全等。 help.h是当前所有的命令文件汇总, 用于tab自动补全功能的源数据。
客户端初始化主要通过一下几步:
1.初始化客户端默认状态
2.查看是否终端输出
3.初始化help
4.根据参数初始化变量
5.判断以那种方式工作
初始化客户端默认状态
查看是否终端输出
!isatty(fileno(stdout)) && (getenv(“FAKETTY”) == NULL)判断是否终端输出, 实现了如下功能:
$ redis-cli exists akey (integer) 0 $ echo $(redis-cli exists akey) 0
后面一个命令的输出中 (integer) 去哪里了?
看了看 redis-cli 帮助中有个 –raw 选项,可以控制输出格式:
$ redis-cli --raw exists akey 0
初始化help
调用cliInitHelp(), 初始化help命令, 包括group、command命令。
根据参数初始化变量
调用parseOptions(argc,argv), 修改config的默认值。
判断以那种方式工作
client有九种运行模式: latency、slave、RDB、Pipe、find big keys、stat、scan、交互、eval模式, 根据不同设置, 初始化不同的运行模式, 默认是交互模式。