首頁  >  文章  >  資料庫  >  深入解析Redis中的Info指令

深入解析Redis中的Info指令

青灯夜游
青灯夜游轉載
2021-10-14 10:57:102818瀏覽

這篇文章帶大家了解Redis中的Info指令,希望對大家有幫助!

深入解析Redis中的Info指令

Redis提供了info指令,它會傳回關於Redis伺服器的各種資訊和統計數值。在使用Redis時,時常會遇到一些疑難雜症需要我們去排查,這個時候我們可以透過info指令來取得Redis的運作狀態,然後進行問題的檢查。 【相關推薦:Redis影片教學

透過給定可選的參數section ,可以讓指令只傳回某一部分的資訊:

  • server: Redis伺服器的一般資訊

  • clients: 用戶端的連線部分

  • ##memory:記憶體消耗相關資訊

  • ##persistence: RDB和AOF相關資訊

  • stats: 一般統計

  • replication: 主/從複製資訊

cpu: 統計CPU的消耗

  • commandstats: Redis指令統計

cluster: Redis叢集訊息

keyspace: 資料庫的相關統計

#它也可以採取以下值:

all: 傳回所有訊息

default: 值傳回預設設定的資訊

如果沒有使用任何參數時,預設為default,傳回所有的資訊。 info server下面是所有server 相關的資訊參數名稱##redis_versionRedis 伺服器版本redis_git_sha1Git SHA1#redis_git_dirtyGit dirty flagredis_build_id建置ID#redis_mode 伺服器模式(standalone,sentinel或cluster)osRedis 伺服器的宿主作業系統arch_bits架構(32 或64 位元)#multiplexing_apiatomicvar_api#gcc_version##編譯Redis 時所使用的GCC 版本process_id伺服器程序的PID#run_idRedis 伺服器的隨機識別碼(用於Sentinel 和叢集)tcp_portTCP/IP 監聽埠uptime_in_seconds自Redis 伺服器啟動以來,經過的秒數字uptime_in_days自Redis 伺服器啟動以來,經過的天數hz#伺服器的頻率設定
info/info all 返回Redis服務所有的資訊
# Server
redis_version:6.2.4
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:fa652e749408dcfd
redis_mode:standalone
os:Linux 3.10.0-327.el7.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:c11-builtin
gcc_version:9.3.1
process_id:4617
process_supervised:no
run_id:9662797d01b55345cd6cabad38d102e27db19e66
tcp_port:6379
server_time_usec:1632494557942546
uptime_in_seconds:4
uptime_in_days:0
hz:10
configured_hz:10
lru_clock:5104605
executable:/usr/local/soft/redis-6.2.4/src/redis-server
config_file:/usr/local/soft/redis-6.2.4/redis.conf
io_threads_active:0

# Clients
connected_clients:1
cluster_connections:0
maxclients:10000
client_recent_max_input_buffer:16
client_recent_max_output_buffer:0
blocked_clients:0
tracking_clients:0
clients_in_timeout_table:0

# Memory
used_memory:874728
used_memory_human:854.23K
used_memory_rss:10207232
used_memory_rss_human:9.73M
used_memory_peak:932800
used_memory_peak_human:910.94K
used_memory_peak_perc:93.77%
used_memory_overhead:830808
used_memory_startup:810168
used_memory_dataset:43920
used_memory_dataset_perc:68.03%
allocator_allocated:1036080
allocator_active:1380352
allocator_resident:3932160
total_system_memory:1913507840
total_system_memory_human:1.78G
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:104857600
maxmemory_human:100.00M
maxmemory_policy:volatile-lfu
allocator_frag_ratio:1.33
allocator_frag_bytes:344272
allocator_rss_ratio:2.85
allocator_rss_bytes:2551808
rss_overhead_ratio:2.60
rss_overhead_bytes:6275072
mem_fragmentation_ratio:12.27
mem_fragmentation_bytes:9375272
mem_not_counted_for_evict:0
mem_replication_backlog:0
mem_clients_slaves:0
mem_clients_normal:20496
mem_aof_buffer:0
mem_allocator:jemalloc-5.1.0
active_defrag_running:0
lazyfree_pending_objects:0
lazyfreed_objects:0

# Persistence
loading:0
current_cow_size:0
current_cow_size_age:0
current_fork_perc:0.00
current_save_keys_processed:0
current_save_keys_total:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1632494553
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:1
total_commands_processed:1
instantaneous_ops_per_sec:0
total_net_input_bytes:31
total_net_output_bytes:20324
instantaneous_input_kbps:0.00
instantaneous_output_kbps:0.00
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
expired_stale_perc:0.00
expired_time_cap_reached_count:0
expire_cycle_cpu_milliseconds:0
evicted_keys:0
keyspace_hits:0
keyspace_misses:0
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
total_error_replies:0
dump_payload_sanitizations:0
total_reads_processed:2
total_writes_processed:1
io_threaded_reads_processed:0
io_threaded_writes_processed:0

# Replication
role:master
connected_slaves:0
master_failover_state:no-failover
master_replid:5b43385d46f4a601c025cb2c4ce5706b0b77db86
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:0.030666
used_cpu_user:0.000000
used_cpu_sys_children:0.000000
used_cpu_user_children:0.000000
used_cpu_sys_main_thread:0.030570
used_cpu_user_main_thread:0.000000

# Modules

# Errorstats

# Cluster
cluster_enabled:0

# Keyspace
db0:keys=2,expires=0,avg_ttl=0
##Redis 所使用的事件處理機制
Redis使用的Atomicvar API

深入解析Redis中的Info指令

lru_clock

以分鐘為單位進行自增的時鐘,用於LRU 管理

executable伺服器的執行檔路徑info clients以下是所有clients 相關的資訊參數名稱#connected_clients已連接客戶端的數量(不包括透過從屬伺服器連接的客戶端)
config_file 設定檔路徑
含義
#########client_longest_output_list#######目前連接的客戶端當中,最長的輸出清單############client_biggest_input_buf## ####目前連線的客戶端當中,最大輸入快取############blocked_clients######正在等待阻塞指令(BLPOP、BRPOP、BRPOPLPUSH)的客戶端的數量## ##########

深入解析Redis中的Info指令

info memory

以下是所有memory 相關的資訊

#used_memory由Redis 分配器指派的記憶體總量,以位元組(byte)為單位used_memory_human以人類可讀的格式傳回Redis 分配的記憶體總量used_memory_rss從作業系統的角度,傳回Redis 已分配的記憶體總量(俗稱常駐集大小)。這個值和 top 、 ps 等指令的輸出一致。 used_memory_peakused_memory_peakRedis 的記憶體消耗峰值(以位元組為單位)used_memory_peak_human以人類可讀的格式傳回Redis 的記憶體消耗峰值used_memory_peak_perc使用記憶體佔峰值記憶體的百分比# used_memory_overhead伺服器為管理其內部資料結構而分配的所有開銷的總和(以位元組為單位)used_memory_startupRedis正在啟動時消耗的初始記憶體大小(以位元組為單位)used_memory_dataset以位元組為單位的資料集大小(used_memory減去used_memory_overhead)used_memory_dataset_percused_memory_dataset佔淨記憶體使用量的百分比(used_memory減去used_memory_startup)total_system_memory #主機具有的記憶體總量total_system_memory_human以人類可讀的格式傳回Redis主機所擁有的記憶體總量 #used_memory_luaLua 引擎所使用的記憶體大小(以位元組為單位)used_memory_lua_human以人類可讀的格式傳回Lua 引擎所使用的記憶體大小maxmemorymaxmemory配置指令的值maxmemory_human以人類可讀的格式傳回maxmemory配置指令的值maxmemory_policymaxmemory-policy配置指令的值#mem_fragmentation_ratioused_memory_rss 和used_memory 之間的比率mem_allocator在編譯時指定的, Redis 所使用的記憶體分配器。可以是libc 、 jemalloc 或tcmallocactive_defrag_running指示活動碎片整理是否處於活動狀態的標誌#lazyfree_pending_objects等待釋放的物件數(由於使用ASYNC選項呼叫UNLINK或FLUSHDB和FLUSHALL)
# #參數名稱 含義
###

在理想情況下, used_memory_rss 的值應該只比 used_memory 稍微高一點兒。當 rss > used ,且兩者的值相差較大時,表示存在(內部或外部的)記憶體碎片。記憶體碎片的比率可以透過mem_fragmentation_ratio 的值看出。當 used > rss 時,表示 Redis 的部分記憶體被作業系統換出到交換空間了,在這種情況下,操作可能會產生明顯的延遲。由於Redis無法控制其分配的記憶體如何映射到記憶體頁,因此常住記憶體(used_memory_rss)很高通常是記憶體使用量激增的結果。當 Redis 釋放記憶體時,記憶體將返回給分配器,分配器可能會,也可能不會,將記憶體回饋給作業系統。如果 Redis 釋放了內存,卻沒有將內存返還給作業系統,那麼 used_memory 的值可能和作業系統顯示的 Redis 內存佔用並不一致。查看 used_memory_peak 的值可以驗證這種情況是否發生。

深入解析Redis中的Info指令

info persistence

#以下是所有persistence 相關的資訊:

## 正在進行的AOF重寫操作的持續時間(如果有)aof_last_bgrewrite_status上次AOF重寫操作的狀態aof_last_write_status上一次AOF寫入操作的狀態aof_last_cow_size上次AOF重寫操作期間copy-on-write指派的位元組大小
參數名稱 意義
loading #指示轉儲檔案(dump)的載入是否正在進行的標誌
rdb_changes_since_last_save 自上次轉儲以來的變更次數
#rdb_bgsave_in_progress 指示RDB檔案是否正在儲存的標誌
rdb_last_save_time 上次成功儲存RDB的基於紀年的時間戳
rdb_last_bgsave_status 上次RDB儲存作業的狀態
rdb_last_bgsave_time_sec 上次RDB儲存操作的持續時間(以秒為單位)
rdb_current_bgsave_time_sec 正在進行的RDB儲存操作的持續時間(如果有)
# rdb_last_cow_size 上次RDB儲存作業期間copy-on-write指派的位元組大小
aof_enabled #表示AOF記錄已啟動的標誌
aof_rewrite_in_progress 表示AOF重寫操作正在進行的標誌
aof_rewrite_scheduled 表示一旦進行中的RDB儲存作業完成,就會安排進行AOF重寫操作的標誌
aof_last_rewrite_time_sec 上次AOF重寫操作的持續時間,以秒為單位
aof_current_rewrite_time_sec
changes_since_last_save指的是從上次呼叫SAVE或BGSAVE以來,在資料集中產生某種變化的操作的數量。

深入解析Redis中的Info指令

AOF

如果啟用了AOF,則會加入以下這些額外的欄位:

#aof_current_size
參數名稱 意思
##目前的AOF檔案大小
aof_base_size 上次啟動或重寫時的AOF檔案大小
aof_pending_rewrite 指示AOF重寫操作是否會在目前RDB儲存作業完成後立即執行的標誌。
aof_buffer_length AOF緩衝區大小
aof_rewrite_buffer_length AOF重寫緩衝區大小
aof_pending_bio_fsync

在後台IO佇列中等待fsync處理的任務數

aof_delayed_fsyncfsync計數器如果正在執行載入操作,將會新增這些額外的欄位:參數名稱意思
loading
loading_start_time 載入操作的開始時間(基於紀元的時間戳記)
loading_total_bytes 檔案總大小
loading_loaded_bytes 已經載入的位元組數
loading_loaded_perc######已經載入的百分比############loading_eta_seconds## ####預計載入完成所需的剩餘秒數#############

status

下面是所有stats 相關的資訊:

參數名稱 意義
total_connections_received 伺服器接受的連線總數
#total_commands_processed 伺服器處理的命令總數
#instantaneous_ops_per_sec 每秒處理的命令數
rejected_connections 由於maxclients限製而拒絕的連線數
expired_keys key到期事件的總數
evicted_keys 由於maxmemory限製而導致被驅逐的key的數量
keyspace_hits 在主字典中成功查找到key的次數
keyspace_misses 在主字典中尋找key失敗的次數
pubsub_channels 擁有用戶端訂閱的全域pub/sub通道數
pubsub_patterns #擁有客戶端訂閱的全域pub/sub模式數
latest_fork_usec 最新fork操作的持續時間,以微秒為單位

info replication

#下面是所有replication 相關的資訊:

參數名稱 ##意思

##role如果實例不是任何節點的從節點,則值是”master”,如果實例從某個節點同步數據,則是”slave」。請注意,一個從節點可以是另一個從節點的主節點(菊花鏈)參數名稱主節點的Host名稱或IP位址主節點監聽的TCP埠連接狀態(up或down)
如果實例是從節點,則會提供以下這些額外欄位:
意思
##master_host
#master_port
#master_link_status

master_last_io_seconds_ago自上次與主節點互動以來,經過的秒數如果SYNC作業正在進行,則會提供以下這些欄位:參數名稱意思
master_sync_in_progress 指示主節點正在與從節點同步

master_sync_last_io_seconds_ago如果主從節點之間的連接斷開了,則會提供一個額外的字段:
#master_sync_left_bytes同步完成前剩餘的位元組數
在SYNC作業期間上次自傳輸IO以來的秒數

#參數名稱意思master_link_down_since_seconds以下欄位將始終提供:
自連接斷開以來,經過的秒數

深入解析Redis中的Info指令

參數名稱

含義

已連接的從節點數對每個從節點,將會新增以下行: slaveXXX id,位址,連接埠號,狀態下面是所有cpu 相關的資訊:參數名稱意思
#connected_slaves
info CPU

深入解析Redis中的Info指令

used_cpu_sys由Redis伺服器消耗的系統CPU##由Redis伺服器消耗的使用者CPU#used_cpu_sys_children由背景程序消耗的系統CPU#used_cpu_user_children
#used_cpu_user
##由後台程序消耗的使用者CPU

深入解析Redis中的Info指令

info cluster

#cluster部分目前只包含一個唯一的欄位:

參數名稱 含義
#cluster_enabled 表示已啟用Redis叢集
###############info keyspace#########keyspace部分提供有關每個資料庫的主字典的統計,統計資訊是key的總數和過期的key的總數,對於每個資料庫,提供以下行:#################參數名稱# ###########意義######################keyspace######dbXXX keys=XXX,expires=XXX## ##########

深入解析Redis中的Info指令

本文轉載自:https://juejin.cn/post/7014398047916883998

更多程式相關知識,請訪問:程式設計影片! !

以上是深入解析Redis中的Info指令的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:juejin.cn。如有侵權,請聯絡admin@php.cn刪除