想要获得下面的redis服务器信息,只需要在命令行中输入:info
server
redis_version
redis_git_sha1
redis_git_dirty
os
- redis_mode:standalone 服务器模式,单机模式(或者集群模式)
arch_bits
multiplexing_api
gcc_version
process_id
run_id
tcp_port
uptime_in_seconds
uptime_in_days
lru_clock
- hz : Redis server执行后台任务的频率,默认为10,此值越大表示redis对"间歇性task"的执行次数越频繁(次数/秒)。"间歇性task"包括"过期集合"检测、关闭"空闲超时"的连接等,此值必须大于0且小于500。此值过小就意味着更多的cpu周期消耗,后台task被轮询的次数更频繁。此值过大意味着"内存敏感"性较差。建议采用默认值。
- config-file: redis 服务器配置文档路径
clients
connected_clients
client_longest_output_list
client_longest_input_buf
blocked_clients
memory
used_memory
used_memory_human
used_memory_rss
- : 从操作系统的角度,返回 Redis 已分配的内存总量(俗称常驻集大小)。这个值和
top
- 、
ps
used_memory_peak
used_memory_peak_human
used_memory_lua
mem_fragmentation_ratio
- :
used_memory_rss
- 和
used_memory
mem_allocator
used_memory_rss
的值应该只比
used_memory
rss > used
mem_fragmentation_ratio
used > rss
Because Redis does not have control over how its allocations are mapped to memory pages, high used_memory_rss
当 Redis 释放内存时,分配器可能会,也可能不会,将内存返还给操作系统。
used_memory
used_memory_peak
persistence
- 部分记录了跟
RDB
- 持久化和
AOF
-
loading
-
rdb_changes_since_last_save
-
rdb_bgsave_in_progress
-
rdb_last_save_time
-
rdb_last_bgsave_status
-
rdb_last_bgsave_time_sec
-
rdb_current_bgsave_time_sec
-
aof_enabled
-
aof_rewrite_in_progress
-
aof_rewrite_scheduled
-
aof_last_rewrite_time_sec
-
aof_current_rewrite_time_sec
-
aof_last_bgrewrite_status
- aof_last_write_status : 最近写aof文件的状态
如果 AOF 持久化功能处于开启状态,那么这个部分还会加上以下域:
-
aof_current_size
-
aof_base_size
-
aof_pending_rewrite
-
aof_buffer_length
-
aof_rewrite_buffer_length
-
aof_pending_bio_fsync
: 后台 I/O 队列里面,等待执行的 fsync
-
aof_delayed_fsync
: 被延迟的 fsync
stats
total_connections_received
total_commands_processed
instantaneous_ops_per_sec
rejected_connections
expired_keys
evicted_keys
keyspace_hits
keyspace_misses
pubsub_channels
pubsub_patterns
latest_fork_usec
- : 最近一次
fork()
replication
role
- : 如果当前服务器没有在复制任何其他服务器,那么这个域的值就是
master
- ;否则的话,这个域的值就是
slave
如果当前服务器是一个从服务器的话,那么这个部分还会加上以下域:
-
master_host
-
master_port
-
master_link_status
: 复制连接当前的状态, up
表示连接正常, down
-
master_last_io_seconds_ago
-
master_sync_in_progress
如果同步操作正在进行,那么这个部分还会加上以下域:
-
master_sync_left_bytes
-
master_sync_last_io_seconds_ago
如果主从服务器之间的连接处于断线状态,那么这个部分还会加上以下域:
-
master_link_down_since_seconds
以下是一些总会出现的域:
-
connected_slaves
对于每个从服务器,都会添加以下一行信息:
-
slaveXXX
cpu
used_cpu_sys
used_cpu_user
used_cpu_sys_children
used_cpu_user_children
commandstats
cmdstat_XXX:calls=XXX,usec=XXX,usecpercall=XXX
cluster
cluster_enabled
keyspace
dbXXX:keys=XXX,expires=XXX
section
all
default
当不带参数直接调用 INFO 命令时,使用 default
Note
不同版本的 Redis 可能对返回的一些域进行了增加或删减。
因此,一个健壮的客户端程序在对 INFO 命令的输出进行分析时,应该能够跳过不认识的域,并且妥善地处理丢失不见的域。
可用版本:
>= 1.0.0
时间复杂度:
O(1)
返回值:
具体请参见下面的测试代码。
redis> INFO
# Server
redis_version:2.9.11
redis_git_sha1:937384d0
redis_git_dirty:0
redis_build_id:8e9509442863f22
redis_mode:standalone
os:Linux 3.13.0-35-generic x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.8.2
process_id:4716
run_id:26186aac3f2380aaee9eef21cc50aecd542d97dc
tcp_port:6379
uptime_in_seconds:362
uptime_in_days:0
hz:10
lru_clock:1725349
config_file:
# Clients
connected_clients:1
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
# Memory
used_memory:508536
used_memory_human:496.62K
used_memory_rss:7974912
used_memory_peak:508536
used_memory_peak_human:496.62K
used_memory_lua:33792
mem_fragmentation_ratio:15.68
mem_allocator:jemalloc-3.2.0
# Persistence
loading:0
rdb_changes_since_last_save:6
rdb_bgsave_in_progress:0
rdb_last_save_time:1411011131
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:-1
rdb_current_bgsave_time_sec:-1
aof_enabled:0
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
# Stats
total_connections_received:2
total_commands_processed:4
instantaneous_ops_per_sec:0
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
evicted_keys:0
keyspace_hits:0
keyspace_misses:0
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:0
migrate_cached_sockets:0
# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
# CPU
used_cpu_sys:0.21
used_cpu_user:0.17
used_cpu_sys_children:0.00
used_cpu_user_children:0.00
# Cluster
cluster_enabled:0
# Keyspace
db0:keys=2,expires=0,avg_ttl=0