详细分析Redis性能监控指标 附参数解释(全)

目录

  • 前言
  • 1. 基本指标
  • 2. 监控命令
  • 3. 实战演示

前言

对于Redis的相关知识推荐阅读:

  1. Redis框架从入门到学精(全)
  2. Python操作Redis从入门到精通附代码(全)
  3. Redis相关知识

1. 基本指标

Redis 是一个高性能的键值存储系统,常用于缓存、消息队列等场景

性能监控是确保 Redis 运行稳定和高效的关键

以下是 Redis 中必须监控的一些重要指标以及它们的详细分析:

内存使用情况连接数命令执行情况持久化CPU 使用率网络流量主从复制延迟缓存命中率慢查询客户端命令队列
1.总内存使用量:监控 Redis 实例占用的总内存量,确保不会超出可用内存

2.内存碎片:监控内存碎片情况,尽量避免内存碎片导致的性能问题

3.命中内存:监控 Redis 缓存命中率,确保大部分请求都可以从内存中获取数据,而不是从磁盘
1.当前连接数:监控当前连接到 Redis 实例的客户端数量,确保不会达到连接上限

2.连接建立速率:监控连接建立速率,确保没有异常的连接波动
1.命令执行速率:监控 Redis 执行命令的速率,了解系统的负载情况

2.最耗时命令:监控最耗时的命令,优化这些命令的执行效率
1.RDB 持久化频率:监控 RDB 持久化的频率,确保数据定期持久化到磁盘

2.AOF 持久化体积:监控 AOF 日志的体积,确保不会过大导致性能下降
1.系统 CPU 使用率:监控 Redis 进程占用的 CPU 使用率,确保不会过高

2.单个命令的 CPU 消耗:监控单个命令的 CPU 消耗,优化高 CPU 消耗的命令
输入/输出流量:监控 Redis 实例的网络输入和输出流量,确保网络带宽足够支持流量需求主从复制延迟时间:监控主从复制的延迟时间,确保从节点能及时同步主节点的数据缓存命中率:监控 Redis 缓存的命中率,确保大部分请求都能从缓存中获取数据,减少对后端存储的访问慢查询日志:监控慢查询日志,找出执行时间较长的查询,进行优化客户端命令队列长度:监控客户端命令队列的长度,避免积压过多的请求导致系统响应延迟

以上指标的监控可以通过 Redis 自带的监控命令(如 INFO 命令)、Redis 的监控工具(如 Redis Monitor、Redis Desktop Manager)以及第三方监控工具(如 Prometheus、Grafana)来实现。及时地监控这些指标,有助于发现潜在的性能问题并及时进行调优,确保 Redis 系统的稳定性和高性能运行

2. 监控命令

  • 获取 Redis 信息:使用 INFO 命令可以获取 Redis 的各种信息,包括内存使用、连接数、持久化信息、统计信息等:redis-cli INFO

  • 监控 Redis 实例的内存使用情况redis-cli INFO memory

  • 监控当前连接数redis-cli INFO clients

  • 查看 Redis 命令执行情况redis-cli INFO commandstats

  • 监控 CPU 使用情况redis-cli INFO CPU

  • 查看网络情况redis-cli INFO stats

  • 查看主从复制延迟redis-cli INFO replication

  • 监控慢查询redis-cli SLOWLOG GET

  • 查看客户端命令队列长度redis-cli INFO clients

这些命令会返回大量的信息,根据需要选择性地获取特定部分的信息进行监控和分析

通常编写脚本来定期运行这些命令,将结果保存到日志文件中,或者使用监控工具来实时获取和展示这些信息

3. 实战演示

以下命令为Window,思路大同小异!

为了讲解演示,以测试库的Redis为例:redis-cli.exe info

在这里插入图片描述

大致的含义如下:

E:\software\Redis>redis-cli.exe info
# Server 关于 Redis 服务器的一般信息,包括版本、构建信息、运行模式等
redis_version:5.0.14.1   # Redis 版本
redis_git_sha1:ec77f72d  # Git 版本号
redis_git_dirty:0
redis_build_id:5627b8177c9289c
redis_mode:standalone  # Redis 运行模式,这里是 standalone(单机模式)
os:Windows  # 操作系统
arch_bits:64
multiplexing_api:WinSock_IOCP
atomicvar_api:pthread-mutex
process_id:10608   # Redis 进程 ID
run_id:65a73910df22810039ae94a51aa66712775b8cf3
tcp_port:6379  # TCP 端口号
uptime_in_seconds:1174094  # 服务器已运行的秒数
uptime_in_days:13  # 服务器已运行的天数
hz:10
configured_hz:10
lru_clock:12732602
executable:E:\software\Redis\"e:\software\redis\redis-server.exe"
config_file:E:\software\Redis\redis.windows.conf# Clients  关于客户端连接的信息
connected_clients:14  # 当前连接的客户端数量
client_recent_max_input_buffer:4  
client_recent_max_output_buffer:0
blocked_clients:0  # 正在等待阻塞命令执行的客户端数量# Memory 关于内存使用的信息
used_memory:1009784  # 已分配的内存总量
used_memory_human:986.12K
used_memory_rss:967520
used_memory_rss_human:944.84K
used_memory_peak:1268176  # 内存使用峰值
used_memory_peak_human:1.00M
used_memory_peak_perc:79.62%
used_memory_overhead:937224
used_memory_startup:660344
used_memory_dataset:72560
used_memory_dataset_perc:20.76%
allocator_allocated:1328232
allocator_active:427819008
allocator_resident:436207616
total_system_memory:0
total_system_memory_human:0B
used_memory_lua:37888  # Lua 脚本引擎使用的内存量
used_memory_lua_human:37.00K
used_memory_scripts:0
used_memory_scripts_human:0B
number_of_cached_scripts:0
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
allocator_frag_ratio:322.10
allocator_frag_bytes:426490776
allocator_rss_ratio:1.02  
allocator_rss_bytes:8388608
rss_overhead_ratio:0.00
rss_overhead_bytes:-435240096
mem_fragmentation_ratio:1.00  # 内存碎片率
mem_fragmentation_bytes:0
mem_not_counted_for_evict:0
mem_replication_backlog:0
mem_clients_slaves:0
mem_clients_normal:273264
mem_aof_buffer:0
mem_allocator:jemalloc-5.2.1-redis
active_defrag_running:0
lazyfree_pending_objects:0# Persistence
loading:0  # 是否正在加载持久化文件
rdb_changes_since_last_save:0  # 是否正在加载持久化文件
rdb_bgsave_in_progress:0
rdb_last_save_time:1707200299  # 最后一次 RDB 持久化的时间戳
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:0
rdb_current_bgsave_time_sec:-1
rdb_last_cow_size:0
aof_enabled:0  # 是否启用 AOF 持久化
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
aof_last_cow_size:0# Stats  统计信息,包括连接、命令处理、网络流量等
total_connections_received:131  # 接收的连接总数
total_commands_processed:378897 # 处理的命令总数
instantaneous_ops_per_sec:0
total_net_input_bytes:6442981
total_net_output_bytes:1210414995
instantaneous_input_kbps:0.00
instantaneous_output_kbps:0.00
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:58  # 过期的键总数
expired_stale_perc:0.00
expired_time_cap_reached_count:0
evicted_keys:0
keyspace_hits:15292  # 命中键总数
keyspace_misses:1262  # 未命中键总数
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:23662
migrate_cached_sockets:0
slave_expires_tracked_keys:0
active_defrag_hits:0
active_defrag_misses:0
active_defrag_key_hits:0
active_defrag_key_misses:0# Replication 关于主从复制的信息
role:master  # 角色,这里是 master(主节点)
connected_slaves:0 # 连接的从节点数量
master_replid:89ae92c82f117813f4ac44fcc520a11b695125a1
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0# CPU 使用情况
used_cpu_sys:5.687500 # 系统 CPU 使用时间
used_cpu_user:22.531250 # 用户 CPU 使用时间
used_cpu_sys_children:0.000000
used_cpu_user_children:0.000000# Cluster 集群相关信息
cluster_enabled:0 # 是否启用集群模式# Keyspace # 数据库键空间相关信息
db0:keys=64,expires=0,avg_ttl=0 # 数据库 0 的统计信息,包括键数量、过期键数量和平均 TTL

如果要做过滤筛选,不同系统不一样选择:

对于Linux操作系统来说,通过grep筛选
对于Window操作系统来说,通过findstr筛选

推荐阅读:Window命令行 如何查看以及关闭进程

类似如下命令:

在这里插入图片描述
(如果是linux则更换为redis-cli info | grep ops # 每秒操作数
以下为Window:

  • 性能监控:redis-cli.exe info | findstr ops # 每秒操作数
  • 内存监控:redis-cli.exe info | findstr used | grep human
  • 内存碎片率:redis-cli.exe | findstr mem_fragmentation_ratio
  • 已使用内存:redis-cli.exe info | findstr used_memory

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/254117.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络分析仪的防护技巧

VNA的一些使用防护技巧,虽不全面,但非常实用: [1] 一定要使用正规接地的三相交流电源线缆进行供电,地线不可悬浮,并且,火线和零线不可反接; [2] 交流供电必须稳定,如220V供电&#x…

【开源】SpringBoot框架开发桃花峪滑雪场租赁系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 游客服务2.2 雪场管理 三、数据库设计3.1 教练表3.2 教练聘请表3.3 押金规则表3.4 器材表3.5 滑雪场表3.7 售票表3.8 器材损坏表 四、系统展示五、核心代码5.1 查询教练5.2 教练聘请5.3 查询滑雪场5.4 滑雪场预定5.5 新…

LabVIEW动平衡测试与振动分析系统

LabVIEW动平衡测试与振动分析系统 介绍了利用LabVIEW软件和虚拟仪器技术开发一个动平衡测试与振动分析系统。该系统旨在提高旋转机械设备的测试精度和可靠性,通过精确测量和分析设备的振动数据,以识别和校正不平衡问题,从而保证机械设备的高…

Mac 使用AccessClient打开 windows 堡垒机的方式

使用AccessClient打开连接到 windows 页面 需要下载Microsoft remote Desktop 远程连接工具 在国内,无法下载正式版,beta 版本不需要从 app Store 下载 macOS 客户端下载地址 | Microsoft Learn 在浏览器点击对应的windows机器打开即可,会自动唤醒 Microsoft remote Desktop 进…

【MySQL】_JDBC编程

目录 1. JDBC原理 2. 导入JDBC驱动包 3. 编写JDBC代码实现Insert 3.1 创建并初始化一个数据源 3.2 和数据库服务器建立连接 3.3 构造SQL语句 3.4 执行SQL语句 3.5 释放必要的资源 4. JDBC代码的优化 4.1 从控制台输入 4.2 避免SQL注入的SQL语句 5. 编写JDBC代码实现…

HiveSQL——条件判断语句嵌套windows子句的应用

注:参考文章: SQL条件判断语句嵌套window子句的应用【易错点】--HiveSql面试题25_sql剁成嵌套判断-CSDN博客文章浏览阅读920次,点赞4次,收藏4次。0 需求分析需求:表如下user_idgood_namegoods_typerk1hadoop1011hive1…

OJ_计算不带括号的表达式

题干 C实现 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stack> #include <string> #include <map> using namespace std;int main() {char str[1000] { 0 };map<char, int> priority {{\0,0},{,1},{-,1},{*,2},{/,2}};wh…

使用代理IP有风险吗?如何安全使用代理IP?

代理IP用途无处不在。它们允许您隐藏真实IP地址&#xff0c;从而实现匿名性和隐私保护。这对于保护个人信息、绕过地理受限的内容或访问特定网站都至关重要。 然而&#xff0c;正如任何技术工具一样&#xff0c;代理IP地址也伴随着潜在的风险和威胁。不法分子可能会滥用代理IP…

Golang 学习(二)进阶使用

二、进阶使用 性能提升——协程 GoRoutine go f();一个 Go 线程上&#xff0c;可以起多个协程&#xff08;有独立的栈空间、共享程序堆空间、调度由用户控制&#xff09;主线程是一个物理线程&#xff0c;直接作用在 cpu 上的。是重量级的&#xff0c;非常耗费 cpu 资源。协…

On the Spectral Bias of Neural Networks论文阅读

1. 摘要 众所周知&#xff0c;过度参数化的深度神经网络(DNNs)是一种表达能力极强的函数&#xff0c;它甚至可以以100%的训练精度记忆随机数据。这就提出了一个问题&#xff0c;为什么他们不能轻易地对真实数据进行拟合呢。为了回答这个问题&#xff0c;研究人员使用傅里叶分析…

基于BatchNorm的模型剪枝【详解+代码】

文章目录 1、BatchNorm&#xff08;BN&#xff09;2、L1与L2正则化2.1 L1与L2的导数及其应用2.2 论文核心点 3、模型剪枝的流程 ICCV经典论文&#xff0c;通俗易懂&#xff01;论文题目&#xff1a;Learning Efficient Convolutional Networks through Network Slimming卷积后能…

Linux系统安全之iptables防火墙

目录 一、iptables防火墙的基本介绍 二、iptables的四表五链 三、iptables的配置 四、添加&#xff0c;查看&#xff0c;删除规则 一、iptables防火墙的基本介绍 iptables是一个Linux系统上的防火墙工具&#xff0c;它用于配置和管理网络数据包的过滤规则。它可以通过定义…

STM32——LCD(1)认识

目录 一、初识LCD 1. LCD介绍 2. 显示器的分类 3. 像素 4. LED和OLED显示器 5. 显示器的基本参数 &#xff08;1&#xff09;像素 &#xff08;2&#xff09;分辨率 &#xff08;3&#xff09;色彩深度 &#xff08;4&#xff09;显示器尺寸 &#xff08;5&#xff…

PKI - 03 密钥管理(如何进行安全的公钥交换)

文章目录 Pre密钥管理面临的挑战安全密钥管理的几种方式手动密钥交换与确认受信任的介绍 Pre PKI - 02 对称与非对称密钥算法 密钥管理面临的挑战 密钥管理面临的挑战主要包括以下几点&#xff1a; 安全的公钥交换&#xff1a;在使用基于非对称密钥算法的服务之前&#xff0c…

微信小程序 民宿预订租赁系统uniApp

通过山青水磨APP办理租房相关业务&#xff0c;线上解决预定、退订的业务&#xff0c;旅客在使用时更加灵活&#xff0c;实现了快速找房&#xff0c;在线沟通、便捷租赁等操作&#xff0c;除此以外&#xff0c;还能帮助旅客获取周边资讯、当地特色活动服务&#xff0c;提升旅客的…

彻底学会系列:一、机器学习之线性回归(一)

1.基本概念(basic concept) 线性回归&#xff1a; 有监督学习的一种算法。主要关注多个因变量和一个目标变量之间的关系。 因变量&#xff1a; 影响目标变量的因素&#xff1a; X 1 , X 2 . . . X_1, X_2... X1​,X2​... &#xff0c;连续值或离散值。 目标变量&#xff1a; …

【React】redux状态管理、react-redux状态管理高级封装模块化

【React】react组件传参、redux状态管理 一、redux全局状态管理1、redux概述2、redux的组成1.1 State-状态1.2 Action-事件1.3 Reducer1.4 Store 3、redux入门案例1.1 前期准备1.2 构建store1.2.1 在src下新建store文件夹1.2.2 在store文件夹下新建index.ts文件1.2.3 在index.t…

MySQL 图书管理系统

1.需求分析 1.1项目需求分析简介 1.1.1信息需求分析 (1) 图书信息&#xff1a;包括书籍编号&#xff0c;书籍名称&#xff0c;出版社&#xff0c;作者&#xff0c;库存量&#xff0c;出版日期&#xff0c;价格&#xff0c;库存&#xff0c;剩余量&#xff0c;类别等&#xf…

JPEG图像的压缩标准(1)

分3个博客详细介绍JPEG图像的压缩标准&#xff0c;包含压缩和解压缩流程&#xff0c;熵编码过程和文件存储格式。 一、JPEG压缩标准概述 JPEG压缩标准由国际标准化组织 (International Organization for Standardization, ISO) 制订&#xff0c;用于静态图像压缩。JPEG标准包…

MVC框架学习

大一的时候写过一个mvc框架的跑酷游戏&#xff0c;但是那时候基础不扎实&#xff0c;没学明白也没听懂。现在深入的学习一下 以下内容参考&#xff1a;MVC 模式 | 菜鸟教程 (runoob.com) MVC 模式 MVC 模式代表 Model-View-Controller&#xff08;模型-视图-控制器&#xff…