Redis 提供了一个非常有用的查看状态信息的命令:info。它以一种易于理解和阅读的格式,返回关于 Redis 服务器的各种信息和统计数值。使用方法有如下三种:
info:部分Redis系统状态统计信息。
info all:全部Redis系统状态统计信息。
info section:某一块的系统状态统计信息,其中section可以忽略大小写。
复制
详细内容如下表格:
参数名 | 说明 |
---|---|
server | 获取 server 信息 |
clients | 获取 clients 信息,如客户端连接数等 |
memory | 获取 server 的内存信息,包括当前内存消耗、内存使用峰值 |
persistence | 获取 server 的持久化配置信息 |
stats | 获取 server 的一些基本统计信息,如处理过的连接数量等 |
replication | 获取 server 的主从配置信息 |
cpu | 获取 server 的 CPU 使用信息 |
keyspace | 获取 server 中各个 DB 的 key 的数量 |
cluster | 获取集群节点信息,仅在开启集群后可见 |
commandstas | 获取每种命令的统计信息 |
其中 memory,stats,clients,keyspace 是 Redis 运行时经常要关注的信息。
server
获取 server 信息,包括 version, OS, port 等信息
属性名 | 属性值 | 说明 |
---|---|---|
redis_version | 5.0.3 | Redis 服务版本号 |
redisgitsha1 | 00000000 | Git SGA1 |
redisgitdirty | 0 | Git dirty flag |
redisbuildid | 89e87c8197752890 | Redis build ID |
redis_mode | standalone | 运行模式,分为:standalone、sentinel、cluster |
os | Darwin 18.2.0 x86_64 | Redis 所在机器的操作系统 |
arch_bits | 64 | 架构(32位或者64位) |
multiplexing_api | kqueue | Redis 所使用的事件处理机制 |
atomicvar_api | atomic-builtin | Atomicvar API |
gcc_version | 4.2.1 | 编译 Redis 时所使用的 GCC 版本 |
process_id | 40163 | 服务进程 ID |
run_id | c4f8bb49f8214f406725136e6f589b46502a0e00 | run_id |
tcp_port | 6379 | 监听端口 |
uptimeinseconds | 496059 | 自 Redis 服务器启动已来,运行的秒数 |
uptimeindays | 5 | 自 Redis 服务启动已来,运行的天数 |
hz | 10 | serverCron 每秒运行次数 |
configured_hz | 10 | |
lru_clock | 5452491 | 以分钟为单位进行自增的时钟,用于 LRU 管理 |
executable | /../redis-5.0.3/src/./redis-server | 运行文件 |
config_file | /../redis-5.0.3/redis.conf | 配置文件 |
clients
获取 clients 信息,如客户端连接数等
属性名 | 属性值 | 说明 |
---|---|---|
connected_clients | 1 | 当前客户端连接数 |
clientrecentmaxinputbuffer | 2 | 当前连接的客户端当中,最大输入缓存 |
clientrecentmaxoutputbuffer | 0 | 当前连接的客户端当中,最长的输出列表 |
blocked_clients | 0 | 正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数量 |
memory
获取 server 的内存信息,包括当前内存消耗、内存使用峰值
属性名 | 属性值 | 说明 |
---|---|---|
used_memory | 18813680 | 由 redis 分配器(标准libc,jemalloc或其他分配器,例如tcmalloc)分配的内存总量,以字节(byte)为单位 |
usedmemoryhuman | 17.94M | redis 分配的内存总量 |
usedmemoryrss | 1945600 | 从操作系统的角度,Redis 已分配的内存总量(俗称常驻集大小)。这个值和 top、ps 等命令的输出一致。 |
usedmemoryrss_human | 1.86M | 操作系统角度,返回 redis 分配的内存总量 |
usedmemorypeak | 18900752 | redis 的内存消耗峰值(以字节为单位) |
usedmemorypeak_human | 18.03M | Redis 的内存消耗峰值 |
usedmemorypeak_perc | 99.54% | usedmemorypeak在used_memory中所占的百分比 |
usedmemoryoverhead | 11135798 | 分配用于管理其内部数据结构的所有开销的总字节数 |
usedmemorystartup | 988448 | 启动时消耗的初始内存量(以字节为单位) |
usedmemorydataset | 7677882 | 数据集的大小(以字节为单位,usedmemory - usedmemory_overhead) |
usedmemorydataset_perc | 43.07% | usedmemorydataset在净内存(usedmemory-usedmemory_startup)使用量中所占的百分比 |
allocator_allocated | 18780336 | 分配器分配的内存 |
allocator_active | 1907712 | 分配器活跃的内存 |
allocator_resident | 1907712 | 分配器常驻的内存 |
totalsystemmemory | 34359738368 | 主机拥有的内存总量 |
totalsystemmemory_human | 32.00G | 主机拥有的内存总量 |
usedmemorylua | 37888 | Lua引擎使用的字节数 |
usedmemorylua_human | 37.00K | 以可读的格式返回Lua引擎使用内存 |
usedmemoryscripts | 0 | |
usedmemoryscripts_human | 0B | |
numberofcached_scripts | 0 | |
maxmemory | 0 | 配置设置的最大可使用内存值,默认0,不限制 |
maxmemory_human | 0B | 以可读的格式返回最大可使用内存值 |
maxmemory_policy | noeviction | 内存容量超过maxmemory后的处理策略,noeviction当内存使用达到阈值的时候,所有引起申请内存的命令会报错 |
allocatorfragratio | 0.10 | 分配器的碎片率 |
allocatorfragbytes | 18446744073692678992 | 分配器的碎片大小(以字节为单位) |
allocatorrssratio | 1.00 | 分配器常驻内存比例 |
allocatorrssbytes | 0 | 分配器的常驻内存大小(以字节为单位) |
rssoverheadratio | 1.02 | 常驻内存开销比例 |
rssoverheadbytes | 37888 | 常驻内存开销大小(以字节为单位) |
memfragmentationratio | 0.10 | 内存碎片率,usedmemoryrss 和 used_memory 之间的比率 |
memfragmentationbytes | -16834736 | 内存碎片的大小(以字节为单位) |
memnotcountedforevict | 112 | 被驱逐的大小 |
memreplicationbacklog | 0 | repl_backlog |
memclientsslaves | 0 | clients_slaves |
memclientsnormal | 49694 | clients_normal |
memaofbuffer | 112 | aof时,占用的缓冲 |
mem_allocator | libc | 内存分配器(在编译时选择) |
activedefragrunning | 0 | 碎片整理是否处于活动状态 |
lazyfreependingobjects | 0 | 等待释放的对象数(由于使用ASYNC选项调用UNLINK或FLUSHDB和FLUSHALL) |
Persistence
获取 server 的持久化配置信息
属性名 | 属性值 | 说明 |
---|---|---|
loading | 0 | 记录服务器是否正在载入持久化文件 |
rdbchangessincelastsave | 0 | 最近一次成功创建持久化文件之后,经过了多少秒 |
rdbbgsavein_progress | 0 | 记录了服务器是否正在创建 RDB 文件 |
rdblastsave_time | 1582508875 | 最近一次成功创建 RDB 文件的 UNIX 时间戳 |
rdblastbgsave_status | ok | 记录最近一次创建 RDB 文件的状态,是成功还是失败 |
rdblastbgsavetimesec | 1 | 记录了最近一次创建 RDB 文件耗费的秒数 |
rdbcurrentbgsavetimesec | -1 | 如果正在创建 RDB 文件,记录当前的创建操作已经耗费的秒数 |
rdblastcow_size | 0 | 上一次RBD保存操作期间写时复制的大小(以字节为单位) |
aof_enabled | 1 | AOF是否开启 |
aofrewritein_progress | 0 | 记录了是否正在创建 AOF 文件 |
aofrewritescheduled | 0 | 记录了 RDB 文件创建完毕之后,是否需要执行 AOF 重写操作 |
aoflastrewritetimesec | -1 | 最近一次创建 AOF 文件耗费的秒数 |
aofcurrentrewritetimesec | -1 | 如果正在创建 AOF 文件,那么记录当前的创建操作耗费的秒数 |
aoflastbgrewrite_status | ok | 记录了最近一次创建 AOF 文件的状态,是成功还是失败 |
aoflastwrite_status | ok | AOF的最后写入操作的状态,是成功还是失败 |
aoflastcow_size | 0 | 上一次AOF保存操作期间写时复制的大小(以字节为单位) |
aofcurrentsize | 4747340 | AOF 文件当前的大小 |
aofbasesize | 4746996 | 最近一次启动或重写时的AOF文件大小 |
aofpendingrewrite | 0 | 记录了是否有 AOF 重写操作在等待 RDB 文件创建完毕之后执行 |
aofbufferlength | 0 | AOF缓冲区的大小 |
aofrewritebuffer_length | 0 | AOF 重写缓冲区的大小 |
aofpendingbio_fsync | 0 | 后台 I/O 队列里面,等待执行的 fsync 数量 |
aofdelayedfsync | 0 | 被延迟的 fsync 调用数量,如果该值比较大,可以开启参数:no-appendfsync-on-rewrite=yes |
stats
获取 server 的一些基本统计信息,如处理过的连接数量等
属性名 | 属性值 | 说明 |
---|---|---|
totalconnectionsreceived | 11 | 服务器接受的连接总数 |
totalcommandsprocessed | 48 | 服务器已执行的命令数量 |
instantaneousopsper_sec | 0 | 服务器每秒钟执行的命令数量 |
totalnetinput_bytes | 1312 | 启动以来,流入的字节总数 |
totalnetoutput_bytes | 114800 | 启动以来,流出的字节总数 |
instantaneousinputkbps | 0.00 | 接收输入的速率(每秒) |
instantaneousoutputkbps | 0.00 | 输出的速率(每秒) |
rejected_connections | 0 | 由于maxclients限制而被拒绝的连接数 |
sync_full | 0 | 与slave full sync的次数 |
syncpartialok | 0 | 接受的部分重新同步(psync)请求的数量 |
syncpartialerr | 0 | 被拒绝的部分重新同步(psync)请求的数量 |
expired_keys | 0 | key过期事件总数 |
expiredstaleperc | 0.00 | 过期的比率 |
expiredtimecapreachedcount | 0 | 过期计数 |
evicted_keys | 0 | 由于最大内存限制而被驱逐的key数量 |
keyspace_hits | 6 | key命中次数 |
keyspace_misses | 0 | key未命中次数 |
pubsub_channels | 0 | 发布/订阅频道的数量 |
pubsub_patterns | 0 | 发布/订阅的模式数量 |
latestforkusec | 803 | 最近一次 fork() 操作耗费的毫秒数(以微秒为单位) |
migratecachedsockets | 0 | 为迁移而打开的套接字数 |
slaveexpirestracked_keys | 0 | 跟踪过期key数量(仅适用于可写从) |
activedefraghits | 0 | 活跃碎片执行的值重新分配的数量 |
activedefragmisses | 0 | 活跃碎片执行的中止值重新分配的数量 |
activedefragkey_hits | 0 | 活跃碎片整理的key数 |
activedefragkey_misses | 0 | 活跃碎片整理过程跳过的key数 |
replication
获取 server 的主从配置信息
属性名 | 属性值 | 说明 |
---|---|---|
role | master | 角色(master、slave),一个从服务器也可能是另一个服务器的主服务器 |
connected_slaves | 1 | 连接slave实例的个数 |
slave0 | ip=127.0.0.1,port=6380,state=online,offset=14,lag=1 | 连接的slave的信息 |
master_replid | 899b9814f2e841ca194dcc2620c83aa5df0abc10 | 服务器的复制ID |
master_replid2 | 0000000000000000000000000000000000000000 | 第二服务器复制ID,用于故障转移后的PSYNC,用于集群等高可用之后主从节点的互换 |
masterreploffset | 14 | 复制偏移量1 |
secondreploffset | -1 | 第二服务器复制偏移量2 |
replbacklogactive | 1 | 复制缓冲区状态 |
replbacklogsize | 1048576 | 复制缓冲区的大小(以字节为单位) |
replbacklogfirstbyteoffset | 1 | 复制缓冲区的偏移量,标识当前缓冲区可用范围 |
replbackloghistlen | 14 | 复制缓冲区中数据的大小(以字节为单位) |
如果是从节点会有如下信息:
属性名 | 属性值 | 说明 |
---|---|---|
master_host | 127.0.0.1 | Master IP |
master_port | 6379 | Master Port |
masterlinkstatus | up | Master的连接状态(up/down) |
masterlastiosecondsago | 2 | 最近一次主从交互之后的秒数 |
mastersyncin_progress | 0 | 表示从服务器是否一直在与主服务器进行同步 |
slavereploffset | 14 | 复制偏移量 |
slave_priority | 100 | 从服务器的优先级 |
slavereadonly | 1 | 从服务是否只读 |
CPU
获取 server 的 CPU 使用信息
属性名 | 属性值 | 说明 |
---|---|---|
usedcpusys | 2.559564 | 消耗的系统CPU |
usedcpuuser | 0.878593 | 消耗的用户CPU |
usedcpusys_children | 0.001414 | 后台进程占用的系统CPU |
usedcpuuser_children | 0.000510 | 后台进程占用的用户CPU |
keyspace
获取 server 中各个 DB 的 key 的数量
属性名 | 属性值 | 说明 |
---|---|---|
db0 | keys=4,expires=0,avg_ttl=0 | db0 数据库的基本信息 |
【死磕 Redis】----- Redis 通信协议 RESP
【死磕 Redis】----- 理解 pipeline 管道
【死磕 Redis】-----如何排查 Redis 中的慢查询
文章转载自Java技术驿站,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
深入理解分布式锁:原理、应用与挑战
京东云开发者
40次阅读
2025-03-11 15:50:54
缓存监控治理在游戏业务的实践和探索
vivo互联网技术
35次阅读
2025-03-20 09:51:10
如何使用 RisingWave、Kafka 和 Redis 构建实时推荐引擎
RisingWave中文开源社区
35次阅读
2025-03-10 10:30:31
Redis 集群主备切换原因分析
wzf0072
30次阅读
2025-03-20 17:51:42
Redis Cluster集群模式:构建大规模高性能分布式存储系统
老王两点中
27次阅读
2025-03-17 09:00:28
Redis 高可用方案
天翼云开发者社区
23次阅读
2025-03-24 17:09:54
拼多多二面:高并发场景扣减商品库存如何防止超卖?
码哥跳动
23次阅读
2025-03-11 08:36:28
高并发场景下的库存管理,理论与实战能否兼得?
京东云开发者
13次阅读
2025-03-24 16:54:56
如何使用 Redis完成 PV,UV 统计?
猿java
12次阅读
2025-03-04 08:02:34
Redis 集群使用(2)
巴韭特锁螺丝
9次阅读
2025-03-03 00:00:47