Redis info 说明
背景
前面几篇文章介绍完了Redis相关的一些说明,现在看看如何查看Redis的一些性能指标和统计信息,也可以看官网说明,本文基于Redis 5.0.5。
INFO [section]
INFO命令返回有关服务器的信息和统计信息,带上参数ALL可以返回所有部分,默认default,仅返回默认部分集如果未提供任何参数,则采用默认选项。
> INFO ALL
或
> INFO
后面的可选参数可用于选择特定的信息展示:
server: 常规信息
clients: 客户端连接部分
memory: 内存消耗相关信息
persistence: RDB和AOF相关信息
stats: 统计信息
replication: 主/从复制信息
cpu: CPU消耗统计
commandstats: Redis命令统计
cluster: 集群部分
keyspace: 数据库、key相关统计
Redis info {all} [session] 说明
redis> INFO ALL
# Server
redis_version:5.0. //Redis服务器的版本
redis_git_sha1: //Git SHA1
redis_git_dirty: //Git dirty flag
redis_build_id:cdff23e4497417f9 //构建ID
redis_mode:cluster //Redis启动模式:standalone、Sentinel、Cluster
os:Linux 4.4.--generic x86_64 //redis宿主机操作系统
arch_bits: //架构:32位、64位
multiplexing_api:epoll //事件循环机制
atomicvar_api:atomic-builtin //Atomicvar API
gcc_version:5.4. //编译 Redis 时所使用的 GCC 版本
process_id: //进程PID
run_id:7c1db72b9f235c5e52780aeb8817fd272230f1bc //标识Redis服务器的唯一随机值,由Sentinel和Cluster使用
tcp_port: //TCP、IP侦听端口
uptime_in_seconds: //自Redis服务器启动以来的秒数
uptime_in_days: //自Redis服务器启动以来的天数
hz: //调度serverCron每秒运行次数
configured_hz: //
lru_clock: //以分钟为单位进行自增的时钟,用于 LRU 管理
executable:/usr/local/redis5./bin/redis-server //服务器可执行文件的路径
config_file:/usr/local/redis5.//redis6379.conf //启动 redis 配置文件 # Clients
connected_clients: //已连接客户端的数量(不包括通过从服务器连接的客户端)
client_recent_max_input_buffer: //当前连接的客户端当中,最大输入缓存
client_recent_max_output_buffer: //当前连接的客户端当中,最长的输出列表
blocked_clients: //正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数量 # Memory
used_memory: //由 redis 分配器(标准libc,jemalloc或其他分配器,例如tcmalloc)分配的内存总量,以字节(byte)为单位
used_memory_human:2.54M //以可读的格式返回 redis 分配的内存总量
used_memory_rss: //从操作系统的角度,返回 Redis 已分配的内存总量(俗称常驻集大小)。这个值和 top、ps 等命令的输出一致。
used_memory_rss_human:8.73M //以可读的格式,操作系统角度,返回 redis 分配的内存总量
used_memory_peak: //redis 的内存消耗峰值(以字节为单位)
used_memory_peak_human:194.63M //以可读的格式,返回 Redis 的内存消耗峰值
used_memory_peak_perc:1.30% //used_memory_peak在used_memory中所占的百分比
used_memory_overhead: //分配用于管理其内部数据结构的所有开销的总字节数
used_memory_startup: //启动时消耗的初始内存量(以字节为单位)
used_memory_dataset: //数据集的大小(以字节为单位,used_memory - used_memory_overhead)
used_memory_dataset_perc:7.88% //used_memory_dataset在净内存(used_memory-used_memory_startup)使用量中所占的百分比
allocator_allocated: //分配器分配的内存
allocator_active: //分配器活跃的内存
allocator_resident: //分配器常驻的内存
total_system_memory: //主机拥有的内存总量
total_system_memory_human:974.15M //以可读的格式返回主机拥有的内存总量
used_memory_lua: //Lua引擎使用的字节数
used_memory_lua_human:.00K //以可读的格式返回Lua引擎使用内存
used_memory_scripts:
used_memory_scripts_human:0B
number_of_cached_scripts:
maxmemory: //配置设置的最大可使用内存值,默认0,不限制
maxmemory_human:0B //以可读的格式返回最大可使用内存值
maxmemory_policy:noeviction //内存容量超过maxmemory后的处理策略,noeviction当内存使用达到阈值的时候,所有引起申请内存的命令会报错
allocator_frag_ratio:1.22 //分配器的碎片率
allocator_frag_bytes: //分配器的碎片大小(以字节为单位)
allocator_rss_ratio:3.43 //分配器常驻内存比例
allocator_rss_bytes: //分配器的常驻内存大小(以字节为单位)
rss_overhead_ratio:0.79 //常驻内存开销比例
rss_overhead_bytes:- //常驻内存开销大小(以字节为单位)
mem_fragmentation_ratio:3.50 //内存碎片率,used_memory_rss 和 used_memory 之间的比率
mem_fragmentation_bytes: //内存碎片的大小(以字节为单位)
mem_not_counted_for_evict: //被驱逐的大小
mem_replication_backlog: //repl_backlog
mem_clients_slaves: //clients_slaves
mem_clients_normal: //clients_normal
mem_aof_buffer: //aof时,占用的缓冲
mem_allocator:jemalloc-5.1. //内存分配器(在编译时选择)
active_defrag_running: //碎片整理是否处于活动状态
lazyfree_pending_objects: //等待释放的对象数(由于使用ASYNC选项调用UNLINK或FLUSHDB和FLUSHALL) # Persistence
loading: //记录服务器是否正在载入持久化文件
rdb_changes_since_last_save: //最近一次成功创建持久化文件之后,经过了多少秒
rdb_bgsave_in_progress: //记录了服务器是否正在创建 RDB 文件
rdb_last_save_time: //最近一次成功创建 RDB 文件的 UNIX 时间戳
rdb_last_bgsave_status:ok //记录最近一次创建 RDB 文件的状态,是成功还是失败
rdb_last_bgsave_time_sec: //记录了最近一次创建 RDB 文件耗费的秒数
rdb_current_bgsave_time_sec:- //如果正在创建 RDB 文件,记录当前的创建操作已经耗费的秒数
rdb_last_cow_size: //上一次RBD保存操作期间写时复制的大小(以字节为单位)
aof_enabled: //AOF是否开启
aof_rewrite_in_progress: //记录了是否正在创建 AOF 文件
aof_rewrite_scheduled: //记录了 RDB 文件创建完毕之后,是否需要执行 AOF 重写操作
aof_last_rewrite_time_sec: //最近一次创建 AOF 文件耗费的秒数
aof_current_rewrite_time_sec:- //如果正在创建 AOF 文件,那么记录当前的创建操作耗费的秒数
aof_last_bgrewrite_status:ok //记录了最近一次创建 AOF 文件的状态,是成功还是失败
aof_last_write_status:ok //AOF的最后写入操作的状态,是成功还是失败
aof_last_cow_size: //上一次AOF保存操作期间写时复制的大小(以字节为单位)
aof_current_size: //AOF 文件当前的大小
aof_base_size: //最近一次启动或重写时的AOF文件大小
aof_pending_rewrite: //记录了是否有 AOF 重写操作在等待 RDB 文件创建完毕之后执行
aof_buffer_length: //AOF缓冲区的大小
aof_rewrite_buffer_length: //AOF 重写缓冲区的大小
aof_pending_bio_fsync: //后台 I/O 队列里面,等待执行的 fsync 数量
aof_delayed_fsync: //被延迟的 fsync 调用数量,如果该值比较大,可以开启参数:no-appendfsync-on-rewrite=yes 如果正在进行加载操作,会有以下状态:
loading_start_time: //加载操作开始的时间戳
loading_total_bytes: //加载文件总大小
loading_loaded_bytes: //已加载的字节数
loading_loaded_perc: //已加载的百分比
loading_eta_seconds: //完成加载所需的秒数(以秒为单位) 注意:
changes_since_last_save是指自上次调用SAVE或BGSAVE以来在数据集中产生某种更改的操作数。 # Stats
total_connections_received: //服务器接受的连接总数
total_commands_processed: //服务器已执行的命令数量
instantaneous_ops_per_sec: //服务器每秒钟执行的命令数量
total_net_input_bytes: //启动以来,流入的字节总数
total_net_output_bytes: //启动以来,流出的字节总数
instantaneous_input_kbps:0.02 //接收输入的速率(每秒)
instantaneous_output_kbps:0.00 //输出的速率(每秒)
rejected_connections: //由于maxclients限制而被拒绝的连接数
sync_full: //与slave full sync的次数
sync_partial_ok: //接受的部分重新同步(psync)请求的数量
sync_partial_err: //被拒绝的部分重新同步(psync)请求的数量
expired_keys: //key过期事件总数
expired_stale_perc:0.00 //过期的比率
expired_time_cap_reached_count: //过期计数
evicted_keys: //由于最大内存限制而被驱逐的key数量
keyspace_hits: //key命中次数
keyspace_misses: //key未命中次数
pubsub_channels: //发布/订阅频道的数量
pubsub_patterns: //发布/订阅的模式数量
latest_fork_usec: //最近一次 fork() 操作耗费的毫秒数(以微秒为单位)
migrate_cached_sockets: //为迁移而打开的套接字数
slave_expires_tracked_keys: //跟踪过期key数量(仅适用于可写从)
active_defrag_hits: //活跃碎片执行的值重新分配的数量
active_defrag_misses: //活跃碎片执行的中止值重新分配的数量
active_defrag_key_hits: //活跃碎片整理的key数
active_defrag_key_misses: //活跃碎片整理过程跳过的key数 # Replication
role:master //角色(master、slave),一个从服务器也可能是另一个服务器的主服务器
connected_slaves: //连接slave实例的个数
slave0:ip=192.168.163.132,port=,state=online,offset=,lag= //连接的slave的信息
master_replid:1726c598c37f039c4b69db7a4281392a650eb88b //服务器的复制ID
master_replid2: //第二服务器复制ID,用于故障转移后的PSYNC,用于集群等高可用之后主从节点的互换
master_repl_offset: //复制偏移量1
second_repl_offset:- //第二服务器复制偏移量2
repl_backlog_active: //复制缓冲区状态
repl_backlog_size: //复制缓冲区的大小(以字节为单位)
repl_backlog_first_byte_offset: //复制缓冲区的偏移量,标识当前缓冲区可用范围
repl_backlog_histlen: //复制缓冲区中数据的大小(以字节为单位) #如果是从节点,会有以下状态:
master_host:192.168.163.132 //Master IP
master_port: //Master Port
master_link_status:up //Master的连接状态(up/down)
master_last_io_seconds_ago: //最近一次主从交互之后的秒数
master_sync_in_progress: //表示从服务器是否一直在与主服务器进行同步
slave_repl_offset: //复制偏移量
slave_priority: //从服务器的优先级
slave_read_only: //从服务是否只读 #如果正在进行SYNC操作,会有以下状态:
master_sync_left_bytes: //同步完成前剩余的字节数
master_sync_last_io_seconds_ago: //自SYNC操作以来最后一次传输I/O经过的秒数 #如果主服务器和副本服务器之间的链接断开,会有以下状态:
master_link_down_since_seconds: //主从连接断开后经过的秒数
connected_slaves: //已连从的数量 #如果服务器配置(的Redis )有min-slaves-to-write(或以min-replicas-to-write)指令,会有以下状态:
min_slaves_good_slaves: //当前认为良好的副本数,对于每个副本,添加以下行:
slaveXXX: id, IP address, port, state, offset, lag # CPU
used_cpu_sys:133.908000 //消耗的系统CPU
used_cpu_user:70.692000 //消耗的用户CPU
used_cpu_sys_children:0.016000 //后台进程占用的系统CPU
used_cpu_user_children:0.044000 //后台进程占用的用户CPU # Commandstats //提供基于命令类型的统计信息,包括调用次数,这些命令消耗的总CPU时间以及每个命令执行消耗的平均CPU时间。
cmdstat_cluster:calls=,usec=,usec_per_call=115.63
cmdstat_keys:calls=,usec=,usec_per_call=2609.33
cmdstat_get:calls=,usec=,usec_per_call=0.83
cmdstat_set:calls=,usec=,usec_per_call=1.13
cmdstat_monitor:calls=,usec=,usec_per_call=0.67
cmdstat_replconf:calls=,usec=,usec_per_call=1.3
cmdstat_client:calls=,usec=,usec_per_call=255.64
cmdstat_flushdb:calls=,usec=,usec_per_call=11529.00
cmdstat_dbsize:calls=,usec=,usec_per_call=1.23
cmdstat_auth:calls=,usec=,usec_per_call=1.81
cmdstat_info:calls=,usec=,usec_per_call=499.07
cmdstat_config:calls=,usec=,usec_per_call=646.56
cmdstat_psync:calls=,usec=,usec_per_call=285.87
cmdstat_command:calls=,usec=,usec_per_call=6152.12 # Cluster
cluster_enabled: //是否开启集群模式 # Keyspace //键空间部分提供有关每个数据库的统计信息。 统计信息是键的数量,以及带有到期时间的键的数量。
db0:keys=,expires=,avg_ttl=
总结:
通过本文的说明,可以看到通过INFO命令可以得到很多信息,包括OPS、主从情况、command、内存、CPU等等一些信息,也可以通过INFO信息进行一些相关指标的监控,保障Redis更好的运行。
参考文档:
https://redis.io/commands/info
Redis info 说明的更多相关文章
- 使用redis构建可靠分布式锁
关于分布式锁的概念,具体实现方式,直接参阅下面两个帖子,这里就不多介绍了. 分布式锁的多种实现方式 分布式锁总结 对于分布式锁的几种实现方式的优劣,这里再列举下 1. 数据库实现方式 优点:易理解 缺 ...
- Ignite性能测试以及对redis的对比
测试方法 为了对Ignite做一个基本了解,做了一个性能测试,测试方法也比较简单主要是针对client模式,因为这种方法和使用redis的方式特别像.测试方法很简单主要是下面几点: 不作参数优化,默认 ...
- mac osx 安装redis扩展
1 php -v查看php版本 2 brew search php|grep redis 搜索对应的redis ps:如果没有brew 就根据http://brew.sh安装 3 brew ins ...
- Redis/HBase/Tair比较
KV系统对比表 对比维度 Redis Redis Cluster Medis Hbase Tair 访问模式 支持Value大小 理论上不超过1GB(建议不超过1MB) 理论上可配置(默认配置1 ...
- Redis数据库
Redis是k-v型数据库的典范,设计思想及数据结构实现都值得学习. 1.数据类型 value支持五种数据类型:1.字符串(strings)2.字符串列表(lists)3.字符串集合(sets)4.有 ...
- redis 学习笔记(2)
redis-cluster 简介 redis-cluster是一个分布式.容错的redis实现,redis-cluster通过将各个单独的redis实例通过特定的协议连接到一起实现了分布式.集群化的目 ...
- redis 学习笔记(1)
redis持久化 snapshot数据快照(rdb) 这是一种定时将redis内存中的数据写入磁盘文件的一种方案,这样保留这一时刻redis中的数据镜像,用于意外回滚.redis的snapshot的格 ...
- python+uwsgi导致redis无法长链接引起性能下降问题记录
今天在部署python代码到预生产环境时,web站老是出现redis链接未初始化,无法连接到服务的提示,比对了一下开发环境与测试环境代码,完全一致,然后就是查看各种日志,排查了半天也没有查明是什么原因 ...
- nginx+iis+redis+Task.MainForm构建分布式架构 之 (redis存储分布式共享的session及共享session运作流程)
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配 ...
- windows+nginx+iis+redis+Task.MainForm构建分布式架构 之 (nginx+iis构建服务集群)
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,由标题就能看出此内容不是一篇分享文章能说完的,所以我打算分几篇分享文章来讲解,一步一步实现分 ...
随机推荐
- 【Offer】[53-1] 【数字在排序数组中出现的次数】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 统计一个数字在排序数组中出现的次数.例如,输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出 ...
- 一小时入门 Python
因为需求, 需要用到py, 所以来学学py, 因为有java基础 一小时入门py语法是不成问题的, 但是仅仅入门基础语法而已, 不涉及算法,不涉及大数据,机器学习,人工智能, 但是py这么火爆,就在于 ...
- 史上最全 69 道 Spring 面试题和答案
史上最全 69 道 Spring 面试题和答案 目录Spring 概述依赖注入Spring beansSpring注解Spring数据访问Spring面向切面编程(AOP)Spring MVC Spr ...
- idea中applicationContext-trans.xml中的Cannot resolve bean 'dataSource'...的问题解决
问题如下: (applicationContext-trans.xml中的部分截图) 先了解问题是怎么出现的: 此处的dataSource是在applicationContext-dao.xml中配置 ...
- Spring Cloud官方文档中文版-服务发现:Eureka客户端
官方文档地址为:http://cloud.spring.io/spring-cloud-static/Dalston.SR2/#_spring_cloud_netflix 文中例子我做了一些测试在:h ...
- Spring Boot跨域解决方案
一.什么是跨域 为保证浏览器的安全,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源,这称之为同源策略,如果一个请求地址里的协议.域名.端口号都相同,就属于同源.依据浏览器同源策略,非同源脚 ...
- F#周报2019年第37期
新闻 宣告ML.NET 1.4的预览版及更新模型构建器 .NET展示会:一系列的活动! Octopus入门版:对于小团队免费 宣告.NET Core 3.0预览版9 使用IntelliCode更简单地 ...
- 疑难杂症----udf提权无法导出.dll
昨天进行测试一个网站,进行udf提权时候,没办法导出.dll, 起初以为是这个马的问题,后来用专用马,一样不行,但是有报错了,有上网找了半天,终于被我找到了. Mysql数据库从文件导入或导出到文件, ...
- python做傅里叶变换
傅里叶变换(fft) 法国科学家傅里叶提出,任何一条周期曲线,无论多么跳跃或不规则,都能表示成一组光滑正弦曲线叠加之和.傅里叶变换即是把一条不规则的曲线拆解成一组光滑正弦曲线的过程. 傅里叶变换的目的 ...
- linux iconv 转换文件编码
查看文件编码file -i filename 递归转换(包括子文件夹)find default -type d -exec mkdir -p utf/{} \;find default -type f ...