redis info 信息

INFO

INFO [section]html

以一種易於解釋(parse)且易於閱讀的格式,返回關於 Redis 服務器的各類信息和統計數值。git

經過給定可選的參數 section ,可讓命令只返回某一部分的信息:redis

  • server 部分記錄了 Redis 服務器的信息,它包含如下域:數據庫

    • redis_version : Redis 服務器版本api

    • redis_git_sha1 : Git SHA1緩存

    • redis_git_dirty : Git dirty flag服務器

    • os : Redis 服務器的宿主操做系統架構

    • arch_bits : 架構(32 或 64 位)app

    • multiplexing_api : Redis 所使用的事件處理機制socket

    • 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_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, highused_memory_rss is often the result of a spike in memory usage.

    當 Redis 釋放內存時,分配器可能會,也可能不會,將內存返還給操做系統。

    若是 Redis 釋放了內存,卻沒有將內存返還給操做系統,那麼 used_memory 的值可能和操做系統顯示的 Redis 內存佔用並不一致。

    查看 used_memory_peak 的值能夠驗證這種狀況是否發生。

    • 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 。

  • persistence 部分記錄了跟 RDB 持久化和 AOF 持久化有關的信息,它包含如下域:

    若是 AOF 持久化功能處於開啓狀態,那麼這個部分還會加上如下域:

    • aof_current_size : AOF 文件目前的大小。

    • aof_base_size : 服務器啓動時或者 AOF 重寫最近一次執行以後,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 調用數量。

    • loading : 一個標誌值,記錄了服務器是否正在載入持久化文件。

    • rdb_changes_since_last_save : 距離最近一次成功建立持久化文件以後,通過了多少秒。

    • rdb_bgsave_in_progress : 一個標誌值,記錄了服務器是否正在建立 RDB 文件。

    • rdb_last_save_time : 最近一次成功建立 RDB 文件的 UNIX 時間戳。

    • rdb_last_bgsave_status : 一個標誌值,記錄了最近一次建立 RDB 文件的結果是成功仍是失敗。

    • rdb_last_bgsave_time_sec : 記錄了最近一次建立 RDB 文件耗費的秒數。

    • rdb_current_bgsave_time_sec : 若是服務器正在建立 RDB 文件,那麼這個域記錄的就是當前的建立操做已經耗費的秒數。

    • 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 : 一個標誌值,記錄了最近一次建立 AOF 文件的結果是成功仍是失敗。

  • stats 部分記錄了通常統計信息,它包含如下域:

    • total_connections_received : 服務器已接受的鏈接請求數量。

    • total_commands_processed : 服務器已執行的命令數量。

    • instantaneous_ops_per_sec : 服務器每秒鐘執行的命令數量。

    • rejected_connections : 由於最大客戶端數量限制而被拒絕的鏈接請求數量。

    • expired_keys : 由於過時而被自動刪除的數據庫鍵數量。

    • evicted_keys : 由於最大內存容量限制而被驅逐(evict)的鍵數量。

    • keyspace_hits : 查找數據庫鍵成功的次數。

    • keyspace_misses : 查找數據庫鍵失敗的次數。

    • pubsub_channels : 目前被訂閱的頻道數量。

    • pubsub_patterns : 目前被訂閱的模式數量。

    • latest_fork_usec : 最近一次 fork() 操做耗費的毫秒數。

  • replication : 主/從複製信息

    若是當前服務器是一個從服務器的話,那麼這個部分還會加上如下域:

    若是同步操做正在進行,那麼這個部分還會加上如下域:

    若是主從服務器之間的鏈接處於斷線狀態,那麼這個部分還會加上如下域:

    如下是一些總會出現的域:

    對於每一個從服務器,都會添加如下一行信息:

    • slaveXXX : ID、IP 地址、端口號、鏈接狀態

    • connected_slaves : 已鏈接的從服務器數量。

    • master_link_down_since_seconds : 主從服務器鏈接斷開了多少秒。

    • master_sync_left_bytes : 距離同步完成還缺乏多少字節數據。

    • master_sync_last_io_seconds_ago : 距離最近一次由於 SYNC 操做而進行 I/O 已通過去了多少秒。

    • master_host : 主服務器的 IP 地址。

    • master_port : 主服務器的 TCP 監聽端口號。

    • master_link_status : 複製鏈接當前的狀態, up 表示鏈接正常, down 表示鏈接斷開。

    • master_last_io_seconds_ago : 距離最近一次與主服務器進行通訊已通過去了多少秒鐘。

    • master_sync_in_progress : 一個標誌值,記錄了主服務器是否正在與這個從服務器進行同步。

    • role : 若是當前服務器沒有在複製任何其餘服務器,那麼這個域的值就是 master ;不然的話,這個域的值就是slave 。注意,在建立複製鏈的時候,一個從服務器也多是另外一個服務器的主服務器。

    • cpu 部分記錄了 CPU 的計算量統計信息,它包含如下域:

      • used_cpu_sys : Redis 服務器耗費的系統 CPU 。

      • used_cpu_user : Redis 服務器耗費的用戶 CPU 。

      • used_cpu_sys_children : 後臺進程耗費的系統 CPU 。

      • used_cpu_user_children : 後臺進程耗費的用戶 CPU 。

    • commandstats 部分記錄了各類不一樣類型的命令的執行統計信息,好比命令執行的次數、命令耗費的 CPU 時間、執行每一個命令耗費的平均 CPU 時間等等。對於每種類型的命令,這個部分都會添加一行如下格式的信息:

      • cmdstat_XXX:calls=XXX,usec=XXX,usecpercall=XXX

    • cluster 部分記錄了和集羣有關的信息,它包含如下域:

      • cluster_enabled : 一個標誌值,記錄集羣功能是否已經開啓。

    • keyspace 部分記錄了數據庫相關的統計信息,好比數據庫的鍵數量、數據庫已經被刪除的過時鍵數量等。對於每一個數據庫,這個部分都會添加一行如下格式的信息:

      • dbXXX:keys=XXX,expires=XXX

    除上面給出的這些值之外, section 參數的值還能夠是下面這兩個:

    • all : 返回全部信息

    • default : 返回默認選擇的信息

    當不帶參數直接調用 INFO 命令時,使用 default 做爲默認參數。

    不一樣版本的 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
    相關文章
    相關標籤/搜索