redis client list使用

1.client list

  • 返回所有连接到服务器的客户端信息和统计数据
  • 客户端较多时频繁执行存在阻塞redis的可能
127.0.0.1:6379> client list
id=11 addr=127.0.0.1:45126 laddr=127.0.0.1:6379 fd=8 name= age=10754 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=40928 argv-mem=10 obl=0 oll=0 omem=0 tot-mem=61466 events=r cmd=client user=default redir=-1

2.client list命令结果属性

属性 说明
id 客户端连接id
addr 客户端连接IP和端口
laddr redis数据库连接地址和端口
fd socket的文件描述符
name 客户端连接名
age 客户端连接存活时间
idle 客户端连接空闲时间,单位秒。可以用于判断连接是否有没有被及时释放
flags 客户端类型标识
db 当前客户端正在使用的数据库索引下标
sub/psub 当前客户端订阅的频道或模式数
multi 当前事务中已执行命令个数
qbuf 输入缓冲区总容量
qbuf-free 输入缓冲区剩余容量
argv-mem 下一个命令的不完整参数(已从查询缓冲区中提取)
obl 固定缓冲区的长度
oll 动态缓冲区列表的长度
omem 固定缓冲区和动态缓冲区使用的容量
tot-mem 此客户端在其各个缓冲区中消耗的总内存
events 文件描述符事件(r:可读;w:可写)
cmd 当前客户端最后一次执行的命令,不包含参数
user 用户名称,默认default
redir 当前客户端跟踪重定向的客户端id

3.client list中flag客户端标识种类

客户端类型 说明
N 普通客户端,未设置任何flag
M 当前客户端是master节点
S 当前客户端是slave节点
O 当前客户端正在执行monitor命令
X 当前客户端正在执行事务
b 当前客户端正在等待阻塞事件
i 当前客户端正在等待VM I/O,但是此时状态目前已经废弃不用
d 一个受监视的键已被修改,exec命令将失败
u 客户端未被阻塞
c 回复完整输出后,关闭连接
A 尽可能快地关闭连接

官方文档:https://redis.io/commands/client-list/

4.client kill ip:port

  • 由于杀死指定客户端连接线程
127.0.0.1:6379> client kill 127.0.0.1:45126
OK

5.client信息查询

info clinets

##版本6.2.6,相对5版本新增了部分显示信息

# Clients
##当前redis节点的客户端连接数
connected_clients:1

##集群的连接数
cluster_connections:0

##客户端最大连接数
maxclients:10000

##当前所有输入缓冲区中队列对象个数的最大值
client_recent_max_input_buffer:24

##当前所有输出缓冲区中占用的最大容量
client_recent_max_output_buffer:0

##正在执行阻塞命令的客户端个数
blocked_clients:0

tracking_clients:0

clients_in_timeout_table:0

6.client相关配置参数

  • maxclients:客户端最大连接数
  • timeout:客户端空闲连接的超时时间
  • tcp-keepalive:检测TCP连接活性的周期,默认为0,也就是不进行检测,如果需要设置,建议为60,那么redis会每隔60秒对它创建的TCP连接进行活性检测,防止大量死连接占用系统的资源
  • tcp-backlog:TCP三次握手后,会将接受的连接放入队列中,tcp-backlog就是队列的大小,redis默认511.一般不需要修改该参数,该参数会受到操作系统的影响/proc/sys/net/core/somaxconn

你可能感兴趣的:(redis,redis,list,数据库)