客户端
- 服务器使用clients链表连接起多个客户端状态,新客户端放在链表后面
- 输出缓冲区记录客户端发送的命令请求,缓冲区大小不能超过1G,可配置
- 客户端连接上服务器是,服务器会创建客户端的状态。网络连接关闭、发送不符合协议规范的请求、client kill命令、空间转移超时、输出缓冲区大小超出限制都会关闭客户端
- lua脚步的伪客户端在服务器初始化时创建,一直到服务器关闭时才关闭。
- 载入AOF文件时的伪客户端在载入完毕后完毕。
服务器
一个命令发送流程:
- 客户端发送给服务器
- 服务器读取命令请求,并分析出命令参数
- 命令执行器根据命令参数查找命令实现函数
- 执行命令实现函数并得出命令回复
serverCron函数:
- 更新服务状态信息
- 处理服务器接收的SIGTERM信号
- 管理客户端资源状态和数据库状态
- 检测并执行持久化操作等
客户端命令
CLIENT LIST #返回连接到 redis 服务的客户端列表
CLIENT SETNAME #设置当前连接的名称
CLIENT GETNAME #获取通过 CLIENT SETNAME 命令设置的服务名称
CLIENT PAUSE #挂起客户端连接,指定挂起的时间以毫秒计
CLIENT KILL #关闭客户端连接
授权登录命令
AUTH 'password'
配置信息获取
config get 可以获取服务端配置信息(redis.conf中的配置)
127.0.0.1:6379> config get *
1) "dbfilename"
2) "dump.rdb"
3) "requirepass"
4) ""
5) "masterauth"
6) ""
7) "cluster-announce-ip"
8) ""
9) "unixsocket"
10) ""
11) "logfile"
12) ""
13) "pidfile"
14) "/var/redis/run/redis_6379.pid"
15) "slave-announce-ip"
...
网友评论