monitor日志要实时拿

redis 是一个高性能、使用方便的非关系型数据库,我们在使用 redis 时,基本只需要关注存数据,取数据的功能,即 set,get,非常适合用作缓存服务器,降低后端数据库压力。有时,想确认下数据是否是从 redis 里读的,以及 redis 是怎么取得数据,这时就可以使用 monitor 功能了。

一个典型的功能场景:前台用户请求一条数据,后端拿到用户 id 后,在 redis 缓存中查找该用户数据,没有找到,于是从 db 中拿,找到后,返回给前台,并在 redis 里存放该用户的数据,下次有请求后,就可以直接从 redis 里拿,返回给前台,怎么确认数据是从 redis 里取的?当然,如果数据量大,查询时又没索引,从数据库里取,和从 redis 里取的时间消耗是不一样的。从时间消耗上,就基本可以判断数据是从哪里取的。但如果数据量不大,无法从时间消耗上判断,就需要查看 redis 的请求日志,要注意的是,单纯从 redis.conf 中配置 logfile,loglevel 选项,是看不到 redis 请求和操作日志的,打印的都是些无关紧要的信息,这时可以用 monitor 命令来完成。

使用方法:
登录 redis-cli 命令行,输入monitor,即可进入到 redis 监控模式。

随后即可看到,当有请求时,redis 具体都做了什么,我们另外打开一个 redis-cli,随便插入一条数据,比如set "hello" "world",monitor 监控到
redis-monitor

再模拟下上面的那个用户请求数据的功能场景:

首次运行后,对应到 redis 的监控如下,可以看到,redis 里没有找到,然后从 mysql 中查找,并做了 set 操作将信息存起来,再次运行后,发现 redis 里存在,因此直接从 redis 里 get 数据。
redis请求日志
可见,monitor 命令可以让我们清楚的看到 redis 是怎么处理每个请求的,这对于调试阶段非常方便。
当然,为了演示,上面只是一个简单的例子,并没有考虑连接性能问题,实际上,使用 monitor 是会降低 redis 的性能的,适合开发调试使用。上述例子也没有考虑数据更新,比如用户是做一个更新或者删除操作,则相应的也要把 redis 里的信息也同步更新。

https://xujimmy.com/2017/12/13/redis-request-log.html

来源:https://blog.csdn.net/qq397728312/article/details/86290448

使用 monitor 命令查看 redis 请求日志相关推荐

  1. Docker logs 命令——查看docker容器日志

    用法: docker logs [OPTIONS] CONTAINER 名称,简写 默认 描述 --details 显示更多的信息 --follow , -f 跟踪日志输出 --since 显示自某个 ...

  2. adb命令查看app的日志

    前言 在做app测试的时候,经常会遇到异常,此时如果开发没有异常保存,那么测试就得通过adb命令来查看日志信息.基于Windows平台的操作: logcat输出日志 一.把日志输出到手机指定目录 其命 ...

  3. redis info 命令查看redis使用情况

    用客户端连接redis服务器: redis-cli >> info : server: 一般 Redis 服务器信息,包含以下域: redis_version: Redis 服务器版本 r ...

  4. 查看LoadRunner脚本请求日志和服务器返回值方法

    1.  查看所有请求日志和请求响应信息: 采用LoadRunner工具Run-time settings或按键盘F4,选择LOG设置,选择Extended log->Data returned ...

  5. adb查看app的日志

    adb命令查看app的日志,网络的先连接,usb的插上就能用了. adb logcat *:E ->d:\\log.txt 在做app测试的时候,经常会遇到异常,此时如果开发没有异常保存,那么测 ...

  6. 查看并 redis慢日志

    登录redis root@284ffcb1ebf5:/usr/local/bin# ./redis-cli 127.0.0.1:6379> slowlog get (empty list or ...

  7. Redis05:Redis的高级特性:expire 生存时间、pipeline 管道、info命令、Redis的持久化、Redis 的安全策略、Redis监控命令-monitor

    一.expire 生存时间 Redis中可以使用expire命令设置一个键的生存时间,到时间后Redis会自动删除它. 它的一个典型应用场景是:手机验证码 我们平时在登录或者注册的时候,手机会接收到一 ...

  8. 查看redis常用命令

    Redis常用命令 一. Connection连接 ping 使用客户端向 Redis 服务器发送一个 PING ,如果服务器运作正常的话,会返回一个 PONG 案例: 测试ping quit 请求服 ...

  9. 一步一步学习Redis——使用config命令查看或设置配置项

    1.Redis配置 Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf(Windows 名为 redis.windows.conf). 你可以通过 CONFIG 命令查 ...

最新文章

  1. 又现“别人家的公司”!网曝腾讯和快手发“阳光普照奖”,给每个员工100股股票!...
  2. 07:清泉-改(prime+堆)
  3. 对抗高并发拯救系统架构,我们并不需要复仇者联盟|深圳活动
  4. java instance变量_java 类方法和实例方法 以及 类变量和实例变量
  5. pandas无法打开.xlsx文件,xlrd.biffh.XLRDError: Excel xlsx file; not supported
  6. STM32F103_步进电机
  7. 拒绝低效加班,别让“囚徒困境”限制你的职业发展
  8. Leetcode 101.对称二叉树
  9. oracle rman在线备份,Oracle之RMAN备份及还原
  10. JRE解压缩后手动配置注册表
  11. java 校验d盘是否存在_从零学java笔录-第2篇 验证jdk是否安装成功
  12. 【不收藏一定后悔】超智能三子棋——和电脑比一把
  13. NLP入门开源实践总结
  14. visual studio 2008微软教程
  15. 每天一例多线程[day18]-----ThreadPoolExecutor
  16. 人民币贬值 ,对普通人、码农的影响
  17. 骨龄测试软件app_【测试工具】这些APP实用测试工具,不知道你就out了!
  18. python大神的成长之路普通话三分钟_三分钟普通话说话30篇-我的成长之路 - 希赛网...
  19. 1.什么是Docker
  20. SQL Server全外链接

热门文章

  1. c++开发教程之自定义类型的运算
  2. Spring管理session的一些认识和用法心得
  3. Java Swing编程:JTable表格
  4. 一个base.css
  5. oracle授权with,ORACLE权限关于with admin option和with grant option的用法
  6. supersocket缓冲区_supersockets接收过滤器(ReceiveFilter)
  7. Qt学习笔记:QMenuBar()、QMenu()和QAction()的使用
  8. windows平台下caffe可视化配置
  9. Sword STL之map效率问题
  10. python3实现抓取网页资源的 N 种方法(内附200GPython学习资料)