客户端相关总结
- 1.redis服务器端给每个redis客户端保存一个结构
- 2.客户端的结构以链表形式保存
客户端结构包含的属性
- 1.fd
- 2.name
- 3.客户端的标志值
- 4.指向客户端正在使用的数据库的指针和数据库号码
- 5.客户端的输入和输出缓冲区
- 6.客户端的复制状态信息以及进行复制所需要的数据结构
- 7.客户端的事务状态以及指向WATCH使用到的数据结构
- 8.客户端执行BRPOP,BLPOP等列表阻塞命令使用的数据结构
- 9.客户端执行发布与订阅功能时用到的数据结构
- 10.客户端身份验证标志
- 11.客户端的创建时间,以及最后一次和服务器通信时间,以及输出缓冲区大小超出软性限制的时间。
属性拾遗
- 1.输入缓冲区:保存客户端发送到服务端的命令
- 2.输出缓冲区:保存服务端返回的结果
- 3.服务器解析输入缓冲得到命令和命令参数,然后根据命令参数通过字典查找到对应的命令函数。
- 4.每个客户端有两个输出缓冲可用,一个是缓冲区大小固定,一个是大小可变的。
- 5.固定大小的是采用数组形式,可变大小是采用链表形式
- 6.如果redis的输出缓冲区大小超过硬性限制,则直接关闭客户端。
- 7.如果超过了软性限制,且持续时间超过限制则关闭,否则不会关闭。
网友评论