大数据-44 Redis 慢查询日志 监视器 慢查询测试学习

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

  • Hadoop(已更完)
  • HDFS(已更完)
  • MapReduce(已更完)
  • Hive(已更完)
  • Flume(已更完)
  • Sqoop(已更完)
  • Zookeeper(已更完)
  • HBase(已更完)
  • Redis (正在更新...)

章节内容

上节完成了的内容如下:

  • Redis通过Lua功能进行扩展
  • Lua下载安装
  • Lua在Redis中的使用案例(多个)

MySQL 中有慢查询日志,在 Redis 中,也有慢查询日志,可以用于监视和优化查询。

慢查询设置

redis 使用列表存储慢查询的日志,采用队列的方式:FIFO

在 redis.conf 中进行配置:

shell 复制代码
#执行时间超过多少微秒的命令请求会被记录到日志上 0 :全记录 <0 不记录
slowlog-log-slower-than 10000
#slowlog-max-len 存储慢查询日志条数
slowlog-max-len 128

查询日志

为了方便测试,可以通过暂时设置的方式,将检查的阈值调低。

shell 复制代码
config set slowlog-log-slower-than 0
config set slowlog-max-len 2

此时我们的操作基本上都会变成慢操作:

shell 复制代码
set name wzk
set age 123
get name
get age

我们查看慢日志内容:

shell 复制代码
slowlog get

日志可以用来解决以下问题:

  • 问题诊断:当系统或应用程序出现问题时,日志提供的信息,帮助开发人员追踪和定位问题的根本原因。
  • 性能优化:通过分析日志数据,可以了解系统的性能瓶颈和潜在问题,并采取相应的措施来优化系统的性能。

定位与处理

使用 slowlog get 可以获得执行较慢的 redis 命令,针对该命令可以进行优化:

  • 尽量使用短的Key,对于Value有些也可以精简,能用int就int
  • 避免 key *,hgetall 这种操作
  • 减少大key的获取,打散成小key
  • 将 RDB模式 转换为 AOF模式 RDB会FORK子进程
  • 想要一次添加多条数据时可以使用管道
  • 尽可能使用HASH存储
  • 尽量限制下Redis使用的内存大小,可以避免Redis使用swap分区或OOM错误

监视器

Redis 客户端可以通过执行 MONITOR 命令将自己变成一个监视器,实时接受并打印服务器当前处理的命令请求的相关信息。

此时,当其他客户端向服务端发送一条命令时,服务器除了会处理这条命令外,还会将这条命令请求的信息发送给所有监视器。

客户端1

shell 复制代码
./redis-cli
monitor

客户端2

shell 复制代码
./redis-cli
set name:001 wzk
set name:002 kangkang
set age:001 12
set age:002 33

监视平台

对Redis进行监视,这里有几个选择方案:

  • Grafana 开箱即用的可视化工具,具有功能齐全的度量仪表盘和图形编辑器,有灵活丰富的图形化选项,可以混合多种风格,支持多个数据源特点。
  • Prometheus 开源的服务监控系统,它通过HTTP协议从远程的机器收集数据并存储在本地的时序数据库上。
  • RedisExporter 为Prometheus提供了redis指标的导出,配合Prometheus以及grafana进行可视化监控。
相关推荐
StickToForever1 小时前
第4章 信息系统架构(五)
经验分享·笔记·学习·职场和发展
勤奋的凯尔森同学2 小时前
webmin配置终端显示样式,模仿UbuntuDesktop终端
linux·运维·服务器·ubuntu·webmin
月光水岸New2 小时前
Ubuntu 中建的mysql数据库使用Navicat for MySQL连接不上
数据库·mysql·ubuntu
狄加山6752 小时前
数据库基础1
数据库
我爱松子鱼2 小时前
mysql之规则优化器RBO
数据库·mysql
丁卯4043 小时前
Go语言中使用viper绑定结构体和yaml文件信息时,标签的使用
服务器·后端·golang
chengooooooo3 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
Rverdoser4 小时前
【SQL】多表查询案例
数据库·sql
Galeoto4 小时前
how to export a table in sqlite, and import into another
数据库·sqlite
希忘auto4 小时前
详解Redis在Centos上的安装
redis·centos