INFO [section]
The INFO command returns information and statistics about the server in a format that is simple to parse by computers and easy to read by humans.
The optional parameter can be used to select a specific section of information:
server
: General information about the Redis serverclients
: Client connections sectionmemory
: Memory consumption related informationpersistence
: RDB and AOF related informationstats
: General statisticsreplication
: Master/replica replication informationcpu
: CPU consumption statisticscommandstats
: Redis command statisticscluster
: Redis Cluster sectionmodules
: Modules sectionkeyspace
: Database related statisticsmodules
: Module related sectionsIt can also take the following values:
all
: Return all sections (excluding module generated ones)default
: Return only the default set of sectionseverything
: Includes all
and modules
When no parameter is provided, the default
option is assumed.
Bulk string reply: as a collection of text lines.
Lines can contain a section name (starting with a # character) or a property. All the properties are in the form of field:value
terminated by \r\n
.
# Server
redis_version:6.1.240
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:a26db646ea64a07c
redis_mode:standalone
os:Linux 5.4.0-1017-aws x86_64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:c11-builtin
gcc_version:9.3.0
process_id:2755423
process_supervised:no
run_id:d04b36ea49704b152d8ce82bf563d26bcd52e741
tcp_port:6379
server_time_usec:1609093314907829
uptime_in_seconds:1118774
uptime_in_days:12
hz:10
configured_hz:10
lru_clock:15257794
executable:/usr/local/bin/redis-server
config_file:/etc/redis/redis.conf
io_threads_active:0
# Clients
connected_clients:2
cluster_connections:0
maxclients:10000
client_recent_max_input_buffer:72
client_recent_max_output_buffer:0
blocked_clients:0
tracking_clients:0
clients_in_timeout_table:0
# Memory
used_memory:118577712
used_memory_human:113.08M
used_memory_rss:126005248
used_memory_rss_human:120.17M
used_memory_peak:118618720
used_memory_peak_human:113.12M
used_memory_peak_perc:99.97%
used_memory_overhead:34771240
used_memory_startup:803648
used_memory_dataset:83806472
used_memory_dataset_perc:71.16%
allocator_allocated:118644184
allocator_active:118943744
allocator_resident:123236352
total_system_memory:16596942848
total_system_memory_human:15.46G
used_memory_lua:37888
used_memory_lua_human:37.00K
used_memory_scripts:0
used_memory_scripts_human:0B
number_of_cached_scripts:0
maxmemory:200000000
maxmemory_human:190.73M
maxmemory_policy:allkeys-lru
allocator_frag_ratio:1.00
allocator_frag_bytes:299560
allocator_rss_ratio:1.04
allocator_rss_bytes:4292608
rss_overhead_ratio:1.02
rss_overhead_bytes:2768896
mem_fragmentation_ratio:1.06
mem_fragmentation_bytes:7429968
mem_not_counted_for_evict:0
mem_replication_backlog:0
mem_clients_slaves:0
mem_clients_normal:41024
mem_aof_buffer:0
mem_allocator:jemalloc-5.1.0
active_defrag_running:0
lazyfree_pending_objects:0
lazyfreed_objects:0
# Persistence
loading:0
rdb_changes_since_last_save:3103569
rdb_bgsave_in_progress:0
rdb_last_save_time:1607974540
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:-1
rdb_current_bgsave_time_sec:-1
rdb_last_cow_size:0
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
aof_last_cow_size:0
module_fork_in_progress:0
module_fork_last_cow_size:0
# Stats
total_connections_received:59450
total_commands_processed:7587831
instantaneous_ops_per_sec:607
total_net_input_bytes:629489756
total_net_output_bytes:116028645
instantaneous_input_kbps:49.14
instantaneous_output_kbps:18.40
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:20224
expired_stale_perc:0.00
expired_time_cap_reached_count:0
expire_cycle_cpu_milliseconds:30689
evicted_keys:0
keyspace_hits:1747212
keyspace_misses:796042
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:0
total_forks:0
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
tracking_total_keys:0
tracking_total_items:0
tracking_total_prefixes:0
unexpected_error_replies:0
dump_payload_sanitizations:0
total_reads_processed:7639102
total_writes_processed:7639067
io_threaded_reads_processed:0
io_threaded_writes_processed:0
# Replication
role:master
connected_slaves:0
master_replid:d4fc9b96fa0c5d3eb4c4444a394ba6e4e40cc0d5
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:1615.485421
used_cpu_user:4376.192944
used_cpu_sys_children:0.000000
used_cpu_user_children:0.000000
used_cpu_sys_main_thread:1605.555179
used_cpu_user_main_thread:4365.033279
# Modules
# Cluster
cluster_enabled:0
# Keyspace
db0:keys=638444,expires=3,avg_ttl=67367093247
Please note depending on the version of Redis some of the fields have been added or removed. A robust client application should therefore parse the result of this command by skipping unknown properties, and gracefully handle missing fields.
Here is the description of fields for Redis >= 2.4.
Here is the meaning of all fields in the server section:
redis_version
: Version of the Redis serverredis_git_sha1
: Git SHA1redis_git_dirty
: Git dirty flagredis_build_id
: The build idredis_mode
: The server's mode ("standalone", "sentinel" or "cluster")os
: Operating system hosting the Redis serverarch_bits
: Architecture (32 or 64 bits)multiplexing_api
: Event loop mechanism used by Redisatomicvar_api
: Atomicvar API used by Redisgcc_version
: Version of the GCC compiler used to compile the Redis serverprocess_id
: PID of the server processrun_id
: Random value identifying the Redis server (to be used by Sentinel and Cluster)tcp_port
: TCP/IP listen portserver_time_in_usec
: Epoch-based system time with microsecond precisionuptime_in_seconds
: Number of seconds since Redis server startuptime_in_days
: Same value expressed in dayshz
: The server's current frequency settingconfigured_hz
: The server's configured frequency settinglru_clock
: Clock incrementing every minute, for LRU managementexecutable
: The path to the server's executableconfig_file
: The path to the config fileHere is the meaning of all fields in the clients section:
connected_clients
: Number of client connections (excluding connections from replicas)cluster_connections
: An approximation of the number of sockets used by the cluster's busmaxclients
: The value of the maxclients
configuration directive. This is the upper limit for the sum of connected_clients
, connected_slaves
and cluster_connections
.client_longest_output_list
: Longest output list among current client connectionsclient_biggest_input_buf
: Biggest input buffer among current client connectionsblocked_clients
: Number of clients pending on a blocking call (BLPOP, BRPOP, BRPOPLPUSH, BLMOVE, BZPOPMIN, BZPOPMAX)tracking_clients
: Number of clients being tracked (CLIENT TRACKING)clients_in_timeout_table
: Number of clients in the clients timeout tableio_threads_active
: Flag indicating if I/O threads are activeHere is the meaning of all fields in the memory section:
used_memory
: Total number of bytes allocated by Redis using its allocator (either standard libc, jemalloc, or an alternative allocator such as tcmalloc)used_memory_human
: Human readable representation of previous valueused_memory_rss
: Number of bytes that Redis allocated as seen by the operating system (a.k.a resident set size). This is the number reported by tools such as top(1)
and ps(1)
used_memory_rss_human
: Human readable representation of previous valueused_memory_peak
: Peak memory consumed by Redis (in bytes)used_memory_peak_human
: Human readable representation of previous valueused_memory_peak_perc
: The percentage of used_memory_peak
out of used_memory
used_memory_overhead
: The sum in bytes of all overheads that the server allocated for managing its internal data structuresused_memory_startup
: Initial amount of memory consumed by Redis at startup in bytesused_memory_dataset
: The size in bytes of the dataset (used_memory_overhead
subtracted from used_memory
)used_memory_dataset_perc
: The percentage of used_memory_dataset
out of the net memory usage (used_memory
minus used_memory_startup
)total_system_memory
: The total amount of memory that the Redis host hastotal_system_memory_human
: Human readable representation of previous valueused_memory_lua
: Number of bytes used by the Lua engineused_memory_lua_human
: Human readable representation of previous valueused_memory_scripts
: Number of bytes used by cached Lua scriptsused_memory_scripts_human
: Human readable representation of previous valuemaxmemory
: The value of the maxmemory
configuration directivemaxmemory_human
: Human readable representation of previous valuemaxmemory_policy
: The value of the maxmemory-policy
configuration directivemem_fragmentation_ratio
: Ratio between used_memory_rss
and used_memory
mem_allocator
: Memory allocator, chosen at compile timeactive_defrag_running
: Flag indicating if active defragmentation is activelazyfree_pending_objects
: The number of objects waiting to be freed (as a result of calling UNLINK, or FLUSHDB and FLUSHALL with the ASYNC option)Ideally, the used_memory_rss
value should be only slightly higher than used_memory
. When rss >> used, a large difference means there is memory fragmentation (internal or external), which can be evaluated by checking mem_fragmentation_ratio
. When used >> rss, it means part of Redis memory has been swapped off by the operating system: expect some significant latencies.
Because Redis does not have control over how its allocations are mapped to memory pages, high used_memory_rss
is often the result of a spike in memory usage.
When Redis frees memory, the memory is given back to the allocator, and the allocator may or may not give the memory back to the system. There may be a discrepancy between the used_memory
value and memory consumption as reported by the operating system. It may be due to the fact memory has been used and released by Redis, but not given back to the system. The used_memory_peak
value is generally useful to check this point.
Additional introspective information about the server's memory can be obtained by referring to the MEMORY STATS command and the MEMORY DOCTOR.
Here is the meaning of all fields in the persistence section:
loading
: Flag indicating if the load of a dump file is on-goingrdb_changes_since_last_save
: Number of changes since the last dumprdb_bgsave_in_progress
: Flag indicating a RDB save is on-goingrdb_last_save_time
: Epoch-based timestamp of last successful RDB saverdb_last_bgsave_status
: Status of the last RDB save operationrdb_last_bgsave_time_sec
: Duration of the last RDB save operation in secondsrdb_current_bgsave_time_sec
: Duration of the on-going RDB save operation if anyrdb_last_cow_size
: The size in bytes of copy-on-write allocations during the last RDB save operationaof_enabled
: Flag indicating AOF logging is activatedaof_rewrite_in_progress
: Flag indicating a AOF rewrite operation is on-goingaof_rewrite_scheduled
: Flag indicating an AOF rewrite operation will be scheduled once the on-going RDB save is complete.aof_last_rewrite_time_sec
: Duration of the last AOF rewrite operation in secondsaof_current_rewrite_time_sec
: Duration of the on-going AOF rewrite operation if anyaof_last_bgrewrite_status
: Status of the last AOF rewrite operationaof_last_write_status
: Status of the last write operation to the AOFaof_last_cow_size
: The size in bytes of copy-on-write allocations during the last AOF rewrite operationmodule_fork_in_progress
: Flag indicating a module fork is on-goingmodule_fork_last_cow_size
: The size in bytes of copy-on-write allocations during the last module fork operationrdb_changes_since_last_save
refers to the number of operations that produced some kind of changes in the dataset since the last time either SAVE or BGSAVE was called.
If AOF is activated, these additional fields will be added:
aof_current_size
: AOF current file sizeaof_base_size
: AOF file size on latest startup or rewriteaof_pending_rewrite
: Flag indicating an AOF rewrite operation will be scheduled once the on-going RDB save is complete.aof_buffer_length
: Size of the AOF bufferaof_rewrite_buffer_length
: Size of the AOF rewrite bufferaof_pending_bio_fsync
: Number of fsync pending jobs in background I/O queueaof_delayed_fsync
: Delayed fsync counterIf a load operation is on-going, these additional fields will be added:
loading_start_time
: Epoch-based timestamp of the start of the load operationloading_total_bytes
: Total file sizeloading_rdb_used_mem
: The memory usage of the server that had generated the RDB file at the time of the file's creationloading_loaded_bytes
: Number of bytes already loadedloading_loaded_perc
: Same value expressed as a percentageloading_eta_seconds
: ETA in seconds for the load to be completeHere is the meaning of all fields in the stats section:
total_connections_received
: Total number of connections accepted by the servertotal_commands_processed
: Total number of commands processed by the serverinstantaneous_ops_per_sec
: Number of commands processed per secondtotal_net_input_bytes
: The total number of bytes read from the networktotal_net_output_bytes
: The total number of bytes written to the networkinstantaneous_input_kbps
: The network's read rate per second in KB/secinstantaneous_output_kbps
: The network's write rate per second in KB/secrejected_connections
: Number of connections rejected because of maxclients
limitsync_full
: The number of full resyncs with replicassync_partial_ok
: The number of accepted partial resync requestssync_partial_err
: The number of denied partial resync requestsexpired_keys
: Total number of key expiration eventsexpired_stale_perc
: The percentage of keys probably expiredexpired_time_cap_reached_count
: The count of times that active expiry cycles have stopped earlyexpire_cycle_cpu_milliseconds
: The cumulative amount of time spend on active expiry cyclesevicted_keys
: Number of evicted keys due to maxmemory
limitkeyspace_hits
: Number of successful lookup of keys in the main dictionarykeyspace_misses
: Number of failed lookup of keys in the main dictionarypubsub_channels
: Global number of pub/sub channels with client subscriptionspubsub_patterns
: Global number of pub/sub pattern with client subscriptionslatest_fork_usec
: Duration of the latest fork operation in microsecondstotal_forks
: Total number of fork operations since the server startmigrate_cached_sockets
: The number of sockets open for MIGRATE purposesslave_expires_tracked_keys
: The number of keys tracked for expiry purposes (applicable only to writable replicas)active_defrag_hits
: Number of value reallocations performed by active the defragmentation processactive_defrag_misses
: Number of aborted value reallocations started by the active defragmentation processactive_defrag_key_hits
: Number of keys that were actively defragmentedactive_defrag_key_misses
: Number of keys that were skipped by the active defragmentation processtracking_total_keys
: Number of keys being tracked by the servertracking_total_items
: Number of items, that is the sum of clients number for each key, that are being trackedtracking_total_prefixes
: Number of tracked prefixes in server's prefix table (only applicable for broadcast mode)unexpected_error_replies
: Number of unexpected error replies, that are types of errors from an AOF load or replicationtotal_reads_processed
: Total number of read events processedtotal_writes_processed
: Total number of write events processedio_threaded_reads_processed
: Number of read events processed by the main and I/O threadsio_threaded_writes_processed
: Number of write events processed by the main and I/O threadsHere is the meaning of all fields in the replication section:
role
: Value is "master" if the instance is replica of no one, or "slave" if the instance is a replica of some master instance. Note that a replica can be master of another replica (chained replication).master_replid
: The replication ID of the Redis server.master_replid2
: The secondary replication ID, used for PSYNC after a failover.master_repl_offset
: The server's current replication offsetsecond_repl_offset
: The offset up to which replication IDs are acceptedrepl_backlog_active
: Flag indicating replication backlog is activerepl_backlog_size
: Total size in bytes of the replication backlog bufferrepl_backlog_first_byte_offset
: The master offset of the replication backlog bufferrepl_backlog_histlen
: Size in bytes of the data in the replication backlog bufferIf the instance is a replica, these additional fields are provided:
master_host
: Host or IP address of the mastermaster_port
: Master listening TCP portmaster_link_status
: Status of the link (up/down)master_last_io_seconds_ago
: Number of seconds since the last interaction with mastermaster_sync_in_progress
: Indicate the master is syncing to the replicaslave_repl_offset
: The replication offset of the replica instanceslave_priority
: The priority of the instance as a candidate for failoverslave_read_only
: Flag indicating if the replica is read-onlyIf a SYNC operation is on-going, these additional fields are provided:
master_sync_total_bytes
: Total number of bytes that need to be transferred. this may be 0 when the size is unknown (for example, when the repl-diskless-sync
configuration directive is used)master_sync_read_bytes
: Number of bytes already transferredmaster_sync_left_bytes
: Number of bytes left before syncing is complete (may be negative when master_sync_total_bytes
is 0)master_sync_perc
: The percentage master_sync_read_bytes
from master_sync_total_bytes
, or an approximation that uses loading_rdb_used_mem
when master_sync_total_bytes
is 0master_sync_last_io_seconds_ago
: Number of seconds since last transfer I/O during a SYNC operationIf the link between master and replica is down, an additional field is provided:
master_link_down_since_seconds
: Number of seconds since the link is downThe following field is always provided:
connected_slaves
: Number of connected replicasIf the server is configured with the min-slaves-to-write
(or starting with Redis 5 with the min-replicas-to-write
) directive, an additional field is provided:
min_slaves_good_slaves
: Number of replicas currently considered goodFor each replica, the following line is added:
slaveXXX
: id, IP address, port, state, offset, lagHere is the meaning of all fields in the cpu section:
used_cpu_sys
: System CPU consumed by the Redis server, which is the sum of system CPU consumed by all threads of the server process (main thread and background threads)used_cpu_user
: User CPU consumed by the Redis server, which is the sum of user CPU consumed by all threads of the server process (main thread and background threads)used_cpu_sys_children
: System CPU consumed by the background processesused_cpu_user_children
: User CPU consumed by the background processesused_cpu_sys_main_thread
: System CPU consumed by the Redis server main threadused_cpu_user_main_thread
: User CPU consumed by the Redis server main threadThe commandstats section provides statistics based on the command type, including the number of calls, the total CPU time consumed by these commands, and the average CPU consumed per command execution.
For each command type, the following line is added:
cmdstat_XXX
: calls=XXX,usec=XXX,usec_per_call=XXX
The cluster section currently only contains a unique field:
cluster_enabled
: Indicate Redis cluster is enabledThe modules section contains additional information about loaded modules if the modules provide it. The field part of properties lines in this section is always prefixed with the module's name.
The keyspace section provides statistics on the main dictionary of each database. The statistics are the number of keys, and the number of keys with an expiration.
For each database, the following line is added:
dbXXX
: keys=XXX,expires=XXX
A note about the word slave used in this man page: Starting with Redis 5, if not for backward compatibility, the Redis project no longer uses the word slave. Unfortunately in this command the word slave is part of the protocol, so we'll be able to remove such occurrences only when this API will be naturally deprecated.
Modules generated sections: Starting with Redis 6, modules can inject their info into the INFO command, these are excluded by default even when the all
argument is provided (it will include a list of loaded modules but not their generated info fields). To get these you must use either the modules
argument or everything
.,
© 2009–2020 Salvatore Sanfilippo
Licensed under the Creative Commons Attribution-ShareAlike License 4.0.
https://redis.io/commands/info