# INFO
**INFO [section]**
以一種易于解釋(parse)且易于閱讀的格式,返回關于 Redis 服務器的各種信息和統計數值。
通過給定可選的參數 `section` ,可以讓命令只返回某一部分的信息:
* `server` : 一般 Redis 服務器信息,包含以下域:
> * `redis_version` : Redis 服務器版本
> * `redis_git_sha1` : Git SHA1
> * `redis_git_dirty` : Git dirty flag
> * `os` : Redis 服務器的宿主操作系統
> * `arch_bits` : 架構(32 或 64 位)
> * `multiplexing_api` : Redis 所使用的事件處理機制
> * `gcc_version` : 編譯 Redis 時所使用的 GCC 版本
> * `process_id` : 服務器進程的 PID
> * `run_id` : Redis 服務器的隨機標識符(用于 Sentinel 和集群)
> * `tcp_port` : TCP/IP 監聽端口
> * `uptime_in_seconds` : 自 Redis 服務器啟動以來,經過的秒數
> * `uptime_in_days` : 自 Redis 服務器啟動以來,經過的天數
> * `lru_clock` : 以分鐘為單位進行自增的時鐘,用于 LRU 管理
* `clients` : 已連接客戶端信息,包含以下域:
> * `connected_clients` : 已連接客戶端的數量(不包括通過從屬服務器連接的客戶端)
> * `client_longest_output_list` : 當前連接的客戶端當中,最長的輸出列表
> * `client_longest_input_buf` : 當前連接的客戶端當中,最大輸入緩存
> * `blocked_clients` : 正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客戶端的數量
* `memory` : 內存信息,包含以下域:
> * `used_memory` : 由 Redis 分配器分配的內存總量,以字節(byte)為單位
> * `used_memory_human` : 以人類可讀的格式返回 Redis 分配的內存總量
> * `used_memory_rss` : 從操作系統的角度,返回 Redis 已分配的內存總量(俗稱常駐集大小)。這個值和 `top` 、 `ps` 等命令的輸出一致。
> * `used_memory_peak` : Redis 的內存消耗峰值(以字節為單位)
> * `used_memory_peak_human` : 以人類可讀的格式返回 Redis 的內存消耗峰值
> * `used_memory_lua` : Lua 引擎所使用的內存大小(以字節為單位)
> * `mem_fragmentation_ratio` : `used_memory_rss` 和 `used_memory` 之間的比率
> * `mem_allocator` : 在編譯時指定的, Redis 所使用的內存分配器。可以是 libc 、 jemalloc 或者 tcmalloc 。
>
> 在理想情況下, `used_memory_rss` 的值應該只比 `used_memory` 稍微高一點兒。當 `rss > used` ,且兩者的值相差較大時,表示存在(內部或外部的)內存碎片。內存碎片的比率可以通過 `mem_fragmentation_ratio` 的值看出。當 `used > rss` 時,表示 Redis 的部分內存被操作系統換出到交換空間了,在這種情況下,操作可能會產生明顯的延遲。
>
> 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.
>
> 當 Redis 釋放內存時,分配器可能會,也可能不會,將內存返還給操作系統。如果 Redis 釋放了內存,卻沒有將內存返還給操作系統,那么 `used_memory` 的值可能和操作系統顯示的 Redis 內存占用并不一致。查看 `used_memory_peak` 的值可以驗證這種情況是否發生。
* `persistence` : `RDB` 和 `AOF` 的相關信息
* `stats` : 一般統計信息
* `replication` : 主/從復制信息
* `cpu` : CPU 計算量統計信息
* `commandstats` : Redis 命令統計信息
* `cluster` : Redis 集群信息
* `keyspace` : 數據庫相關的統計信息
除上面給出的這些值以外,參數還可以是下面這兩個:
* `all` : 返回所有信息
* `default` : 返回默認選擇的信息
當不帶參數直接調用 [INFO](#info) 命令時,使用 `default` 作為默認參數。
Note
不同版本的 Redis 可能對返回的一些域進行了增加或刪減。
因此,一個健壯的客戶端程序在對 [_INFO_](#info) 命令的輸出進行分析時,應該能夠跳過不認識的域,并且妥善地處理丟失不見的域。
**可用版本:**
>= 1.0.0
**時間復雜度:**
O(1)
**返回值:**
具體請參見下面的測試代碼。
```
redis> INFO
# Server
redis_version:2.5.9
redis_git_sha1:473f3090
redis_git_dirty:0
os:Linux 3.3.7-1-ARCH i686
arch_bits:32
multiplexing_api:epoll
gcc_version:4.7.0
process_id:8104
run_id:bc9e20c6f0aac67d0d396ab950940ae4d1479ad1
tcp_port:6379
uptime_in_seconds:7
uptime_in_days:0
lru_clock:1680564
# Clients
connected_clients:1
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
# Memory
used_memory:439304
used_memory_human:429.01K
used_memory_rss:13897728
used_memory_peak:401776
used_memory_peak_human:392.36K
used_memory_lua:20480
mem_fragmentation_ratio:31.64
mem_allocator:jemalloc-3.0.0
# Persistence
loading:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1338011402
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
# Stats
total_connections_received:1
total_commands_processed:0
instantaneous_ops_per_sec:0
rejected_connections:0
expired_keys:0
evicted_keys:0
keyspace_hits:0
keyspace_misses:0
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:0
# Replication
role:master
connected_slaves:0
# CPU
used_cpu_sys:0.03
used_cpu_user:0.01
used_cpu_sys_children:0.00
used_cpu_user_children:0.00
# Keyspace
```
- Redis 文檔
- 鍵空間通知(keyspace notification)
- 事務(transaction)
- 發布與訂閱(pub/sub)
- 復制(Replication)
- 通信協議(protocol)
- 持久化(persistence)
- Sentinel
- 集群教程
- Redis 集群規范
- Redis 命令參考
- Key(鍵)
- DEL
- DUMP
- EXISTS
- EXPIRE
- EXPIREAT
- KEYS
- MIGRATE
- MOVE
- OBJECT
- PERSIST
- PEXPIRE
- PEXPIREAT
- PTTL
- RANDOMKEY
- RENAME
- RENAMENX
- RESTORE
- SORT
- TYPE
- SCAN
- String(字符串)
- APPEND
- BITCOUNT
- BITOP
- DECR
- DECRBY
- GET
- GETBIT
- GETRANGE
- GETSET
- INCR
- INCRBY
- INCRBYFLOAT
- MGET
- MSET
- MSETNX
- PSETEX
- SET
- SETBIT
- SETEX
- SETNX
- SETRANGE
- STRLEN
- Hash(哈希表)
- HDEL
- HEXISTS
- HGET
- HGETALL
- HINCRBY
- HINCRBYFLOAT
- HKEYS
- HLEN
- HMGET
- HMSET
- HSET
- HSETNX
- HVALS
- HSCAN
- List(列表)
- BLPOP
- BRPOP
- BRPOPLPUSH
- LINDEX
- LINSERT
- LLEN
- LPOP
- LPUSH
- LRANGE
- LREM
- LSET
- LTRIM
- RPOP
- RPOPLPUSH
- RPUSH
- RPUSHX
- Set(集合)
- SADD
- SCARD
- SDIFF
- SDIFFSTORE
- SINTER
- SINTER
- SINTERSTORE
- SISMEMBER
- SMEMBERS
- SMOVE
- SPOP
- SRANDMEMBER
- SREM
- SUNION
- SUNIONSTORE
- SSCAN
- SortedSet(有序集合)
- ZADD
- ZCARD
- ZCOUNT
- ZINCRBY
- ZRANGE
- ZRANGEBYSCORE
- ZRANK
- ZREM
- ZREMRANGEBYRANK
- ZREMRANGEBYSCORE
- ZREVRANGE
- ZREVRANGEBYSCORE
- ZREVRANK
- ZSCORE
- ZUNIONSTORE
- ZINTERSTORE
- ZSCAN
- Pub/Sub(發布/訂閱)
- PSUBSCRIBE
- PUBLISH
- PUBSUB
- PUNSUBSCRIBE
- SUBSCRIBE
- UNSUBSCRIBE
- Transaction(事務)
- DISCARD
- EXEC
- MULTI
- UNWATCH
- WATCH
- Script(腳本)
- EVAL
- EVALSHA
- SCRIPT EXISTS
- SCRIPT FLUSH
- SCRIPT KILL
- SCRIPT LOAD
- Connection(連接)
- AUTH
- ECHO
- PING
- QUIT
- SELECT
- Server(服務器)
- BGREWRITEAOF
- BGSAVE
- CLIENT GETNAME
- CLIENT KILL
- CLIENT LIST
- CLIENT SETNAME
- CONFIG GET
- CONFIG RESETSTAT
- CONFIG REWRITE
- CONFIG SET
- DBSIZE
- DEBUG OBJECT
- DEBUG SEGFAULT
- FLUSHALL
- FLUSHDB
- INFO
- LASTSAVE
- MONITOR
- PSYNC
- SAVE
- SHUTDOWN
- SLAVEOF
- SLOWLOG
- SYNC
- TIME
- 關于