第13章 客户端
redisServer通过clients链表保存全部客户端的状态信息。
13.1 客户端属性
13.1.1 套接字描述符
fd:-1时伪客户端,载入AOF文件或Lua脚本。
13.1.2 名字
默认无客户端名,可以通过SETNAME命令设置。
13.1.3 标志
flags:表示客户端的角色及状态
13.1.4 输入缓冲区
querybuf:保存客户端命令。
13.1.5 命令与命令参数
1>argv数组:命令与命令参数。
2>argc:保存数组长度。
13.1.6 命令的实现函数
cmd:命令表中查询到的对应实现函数。
13.1.7 输出缓冲区
短回复使用16KB的固定大小缓冲区,长回复使用可变大小缓冲区。
13.1.8 身份验证
通过authenticated记录验证通过的情况,值为0时未验证。
在Redis打开了验证模式时,必须通过认证之后才可以执行命令。
13.1.9 时间
1>创建客户端时间
2>最后一次互动时间
3>客户端空转时间
4>输出缓冲区到达软性时间限制
13.2 客户端的创建与关闭
13.2.1 创建普通客户端
连接文件事件–>创建客户端状态–>加入到clients链表
13.2.2 关闭普通客户端
略,P173(有多种情况肯呢个导致客户端被关闭)
13.2.3 Lua脚本的伪客户端
保存在redisServer中的lua_client中,与服务器一起关闭
13.2.4 AOF文件伪客户端
在载入时创建,载入后关闭。