js css html

redis活跃非活跃连接数统计及client list说明

2022-12-06  本文已影响0人  菩提老鹰
WechatIMG174.jpeg

概念说明

client list字段说明

(kfzops) [root@test-xxx-01-vm ]# redis-cli -h r-xxxxxxxxxxxx.redis.rds.aliyuncs.com
r-xxxxxxxxxxxx.redis.rds.aliyuncs.com:6379> client list
id=1106439 addr=172.16.0.2:48012 fd=17 name= age=354261 idle=2 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 argv-mem=0 obl=0 oll=0 omem=0 tot-mem=20504 events=r traffic-control=NULL cmd=info user=default type=vpc real_addr=

客户端标志取值说明:

A:尽快关闭连接。
b:客户端正在等待阻塞事件。
c:写入全部回复后将关闭连接。
d:受监视的键已被修改,EXEC命令将失败。
i:客户端正在等待虚拟机I/O操作(已废弃)。
M:客户端是主节点。
N:未设置特点标志。
O:处于监视模式的客户端。
r:客户端是只读模式的集群节点。
S:客户端是一般模式下的从节点。
u:客户端未被阻塞。
U:通过Unix域套接字连接的客户端。
x:客户端正在执行事务。

工具脚本

这里也提供一个工具脚本, 支持密码和非标准的6379端口

结果展示如下:

image.png

工具代码如下

#!/usr/bin/env bash
# encoding: utf-8
#

host=""
port=""
password=""

# 没有参数则输出用法提示
if [ $# -eq 0 ]
then
    echo -e "Usage:\n\t$0 host [port] [password]"
    exit 0
fi

#  host/port/password
if [ $# -eq 3 ]
then
    host=$1
    port=$2
    password=$3
# host/port 
elif [ $# -eq 2 ]
then
    host=$1
    port=$2
# host and port is 6379
else
    host=$1
    port=6379
fi
# 使用 redis-cli的绝对路径
cmd=$(which redis-cli)
if [ "x$password" == "x" ]
then
    check_url="$cmd -h $host -p $port client list"
else
    check_url="$cmd -h $host -p $port -a $password client list"
fi

# 阿里云 Redis的 client list 记录Demo
# id=1106452 addr=172.16.2.2:48038 fd=20 name= age=354237 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 argv-mem=0 obl=0 oll=0 omem=0 tot-mem=66560 events=r traffic-control=NULL cmd=hmget user=default type=vpc real_addr=

printf "%-35s| %-19s| %-19s| %-10s| %-20s| %-16s| %-16s|%s\n" 客户端连接地址 已连接时长 空闲时长 客户端flag db 订阅 事件 命令
$check_url |awk '{printf "%-28s| %-14s| %-14s| %-14s| %-14s| %-14s| %-14s|%s\n", $2, $5, $6, $7, $8, $9, $19, $21}'

参考地址:

1、https://help.aliyun.com/document_detail/454164.htm?spm=a2c4g.11186623.0.0.529932b8acNZq8#main-107864

上一篇下一篇

猜你喜欢

热点阅读