首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Redis 监控器

Redis 监控器

作者头像
dys
发布2018-04-03 14:57:59
发布2018-04-03 14:57:59
1.6K0
举报
文章被收录于专栏:性能与架构性能与架构

Redis有一个monitor命令,某个client执行monitor命令后,就成为了一个监控器,服务器端执行的所有命令都会发送给监控器

monitor 是一个用来debug的命令,可以帮助我们了解服务器正在发生什么

例如我们打开monitor监控服务器20分钟,可以收集到期间服务器执行的所有命令,那么就可以分析出很多信息,例如:

(1)什么命令执行得次数多

(2)哪些key是热点

(3)通过对get类型命令的提取,统计出发送流量

……

monitor命令使用

127.0.0.1:6379> monitor

OK

执行后返回“OK”,说明此客户端已经成为了监控器,然后就进入了等待状态

当服务器端执行了命令后,这里会自动显示出执行信息,如:

1454886442.140044 [0 127.0.0.1:63773] "keys" "*"

1454886454.538036 [0 127.0.0.1:63773] "get" "user13"

1454886475.392050 [0 127.0.0.1:63773] "get" "mylist_score"

各部分的含义:

1454886442.140044 是时间戳

[0 127.0.0.1:63773] 其中分别为:数据库编号、clent的IP和端口

"keys" "*" 为执行的命令

monitor的实现思路

客户端发送monitor命令后,会发生3个主要的动作

(1)客户端的监视器标识被设置为true

(2)服务器把此客户端添加到了monitors链表的末尾

(3)向客户端返回“OK”

某个client发送命令请求后,server在执行完此命令后,会把命令信息同时发送给monitor链表中个每个client

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-02-08,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档