client list 使用

通过这篇文章你会知道如下:

  • 如何查询目前连接的客户端信息?以及显示的客户端信息各个值代表什么?

1. client list命令结果说明

client list命令能列出与Redis服务端相连的所有客户端连接信息
info clients命令显示最大的缓冲区如如果有大量的client,则可以通过 redis-cli client list | grep 命令进行查找
client list
  • 客户端标识的四个属性:id、 addr、 fd、 name

client setName xx 设置客户端名称
client getName
id 客户端连接唯一标识
fd socket的文件描述符, 与lsof命令结果中的fd是同一个, 如果fd=-1
代表当前客户端不是外部客户端, 而是Redis内部的伪装客户端
flags:客户端类型 N普通客户端,S,slave节点


客户端类型

client list参数说明
  • 输入缓冲区: qbuf(总容量)、 qbuf-free(剩余容量),限制1G容量

Redis为每个客户端分配了输入缓冲区, 它的作用是将客户端发送的命令临时保存, 同时Redis从会输入缓冲区拉取命令并执行, 输入缓冲区为客户端发送命令到Redis执行命令提供了缓冲功能
同时输入缓冲区和输出缓冲区都不受maxmemory控制,所以超过限制则会引起数据的丢失等等的一些情况

  • 输出缓冲区: obl(固定buf长度)、 oll(动态buf的长度)、 omem(使用的字节数)

redis为每个客户端分配了输出缓冲区, 它的作用是保存命令执行的结果返回给客户端, 为Redis和客户端交互返回结果提供缓冲。
通过client-output-buffer-limit <class> <hard limit> <soft limit> <soft seconds>配置。

  1. <class>: 客户端类型, 分为三种。 a) normal: 普通客户端; b)
  2. slave: slave客户端, 用于复制; c) pubsub: 发布订阅客户端。
  3. <hard limit>: 如果客户端使用的输出缓冲区大于<hard limit>, 客户端会被立即关闭。
  4. <soft limit>和<soft seconds>: 如果客户端使用的输出缓冲区超过了<softlimit>并且持续了<soft limit>秒, 客户端会被立即关闭
  5. 输出缓冲区是有固定和动态两部分构成的,固定缓冲区使用的是字节数组, 动态缓冲区使用的是列表。 当固定缓冲区存满后会将Redis新的返回结果存放在动态缓冲区的队列中, 队列中的每个对象就是每个返回结果
  6. client list中的obl代表固定缓冲区的长度, oll代表动态缓冲区列表的长度, omem代表使用的字节数
  • 客户端存活状态:age ,idle

age(当前客户端已经连接的时间)
idle:最近一次空闲的时间,表示服务端没有收到命令进行处理

  • 客户端限制连接:maxclients,

Redis提供了maxclients参数来限制最大客户端连接数, 一旦连接数超过maxclients, 新的连接将被拒绝。 maxclients默认值是10000, 可以通过infoclients来查询当前Redis的连接数
动态设置连接数:config set maxclients 50
动态设置连接的空闲时间:config set timeout 30,idle时间超过timeout则关闭连接,0是不进行检测

  • 杀掉指定的IP和端口的客户端client kill ip:port

2.info clients结果说明

info clients结果

1) connected_clients: 代表当前Redis节点的客户端连接数, 需要重点监控, 一旦超过maxclients, 新的客户端连接将被拒绝。
2) client_longest_output_list: 当前所有输出缓冲区中队列对象个数的最大值。
3) client_biggest_input_buf: 当前所有输入缓冲区中占用的最大容量。
4) blocked_clients: 正在执行阻塞命令(例如blpop、 brpop、brpoplpush) 的客户端个数
info stats中的两个客户端统计信息:
total_connections_received: Redis自启动以来处理的客户端连接数总数。
rejected_connections: Redis自启动以来拒绝的客户端连接数, 需要重点监控

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 节选自《redis开发与运维》 先来看一段client list的执行结果 输出结果的每一行代表一个客户端的信息,...
    一帅阅读 14,126评论 1 7
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,463评论 19 139
  • 分布式缓存技术PK:选择Redis还是Memcached? 经平台同意授权转载 作者:田京昆(腾讯后台研发工程师)...
    meng_philip123阅读 69,006评论 7 60
  • 01 引言 4个月前,我在一个文友交流群里认识了四月,一开始我们没有交集,直到她在群里做了一次分享。 在那次的分享...
    眼镜姑娘呀阅读 5,712评论 10 16
  • 有朋自远方来,不亦乐乎。论语中的耳熟能详的话。许久不见的朋友,两人相见,心里那个激动,未见前,想像老友...
    x123阅读 1,761评论 0 0