• Redis深入学习笔记(二)client list 命令详解


    Redis的client list 命令可以获取当前连接到redis server端的所有客户端以及相关状态,本篇主要介绍每一个参数的作用。

    clisnt list 命令输出结果如下:

    (1)标识:id、addr、fd、name这四个属性属于客户端的标识:

        id:客户端连接的唯一标识,这个id是随着Redis的连接自增的,重启Redis后会重置为0。

        addr:客户端连接的ip和端口。

        fd:socket的文件描述符,与lsof命令结果中的fd是同一个,如果fd=-1代表当前客户端不是外部客户端,而是Redis内部的伪装客户端。

        name:客户端的名字,后面的client setName和client getName两个命令会对其进行说明。

    (2)输入缓冲区:qbuf、qbuf-free

        Redis为每个客户端分配了输入缓冲区,它的作用是将客户端发送的命令临时保存,同时Redis从会输入缓冲区拉取命令并执行,输入缓冲区为客户端发送命令到Redis执行命令提供了缓冲功能。qbuf和qbuf-free分别代表这个缓冲区的总容量和剩余容量Redis没有提供相应的配置来规定每个缓冲区的大小,输入缓冲区会根据输入内容大小的不同动态调整,只是要求每个客户端缓冲区的大小不能超过1G,超过后客户端将被关闭。

    (3)输出缓冲区:obl、oll、omem

        Redis为每个客户端分配了输出缓冲区,它的作用是保存命令执行的结果返回给客户端,为Redis和客户端交互返回结果提供缓冲,与输入缓冲区不同的是,输出缓冲区的容量可以通过参数client-output-buffer-limit来进行设置,并且输出缓冲区做得更加细致,按照客户端的不同分为三种:普通客户端、发布订阅客户端、slave客户端。

        输出缓冲区由两部分组成:固定缓冲区(16KB)和动态缓冲区,固定缓冲区使用的是字节数组,动态缓冲区使用的是列表。当固定缓冲区存满后会将Redis新的返回结果存放在动态缓冲区的队列中,队列中的每个对象就是每个返回结果

        obl代表固定缓冲区的长度,oll代表动态缓冲区列表的长度,omem代表使用的字节数。

    其他参数作用:

      age:客户端连接存活时间

      idle :客户端连接空闲时间

      flags:客户端类型标识

      db:当前客户端正在使用的数据库索引下标

      sub/psub:当前客户端订阅的频道或者模式数

      multi:当前事务中已执行的命令个数

      event:文件描述符事件(r/w):r和w分别代表客户端套接字可读和可写

      cmd:当前客户端最后一次执行的命令,不包含参数

    下一篇会介绍RDB及AOF的流程

  • 相关阅读:
    性能优化汇总
    数组迭代,对象迭代
    数据类型转换
    Vue v-model原理解析
    闭包机制及浏览器垃圾回收处理
    面试题解析
    作用域链查找机制,浏览器的垃圾回收机制
    函数的创建与执行,执行函数
    Mybatis底层源码执行流程
    简单易懂的TCP三次握手及四次挥手
  • 原文地址:https://www.cnblogs.com/iamsach/p/8485461.html
Copyright © 2020-2023  润新知