這篇文章帶大家了解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: 值傳回預設設定的資訊
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 伺服器版本 | |
Git SHA1 | |
Git dirty flag | |
建置ID | |
伺服器模式(standalone,sentinel或cluster) | |
Redis 伺服器的宿主作業系統 | |
架構(32 或64 位元) | |
##Redis 所使用的事件處理機制 | |
Redis使用的Atomicvar API | |
process_id | |
#run_id | |
tcp_port | |
uptime_in_seconds | |
uptime_in_days | |
hz |
以分鐘為單位進行自增的時鐘,用於LRU 管理
executableconfig_file | 設定檔路徑 |
---|---|
info clients | |
含義 | |
#connected_clients |
info memory
以下是所有memory 相關的資訊
# #參數名稱 | 含義 |
---|---|
由Redis 分配器指派的記憶體總量,以位元組(byte)為單位 | |
以人類可讀的格式傳回Redis 分配的記憶體總量 | |
從作業系統的角度,傳回Redis 已分配的記憶體總量(俗稱常駐集大小)。這個值和 top 、 ps 等指令的輸出一致。 | |
used_memory_peak | |
used_memory_peak_human | |
used_memory_peak_perc | |
# used_memory_overhead | |
used_memory_startup | |
used_memory_dataset | |
used_memory_dataset_perc | |
total_system_memory #主機具有的記憶體總量 | |
total_system_memory_human | 以人類可讀的格式傳回Redis主機所擁有的記憶體總量 |
#used_memory_lua | Lua 引擎所使用的記憶體大小(以位元組為單位) |
used_memory_lua_human | 以人類可讀的格式傳回Lua 引擎所使用的記憶體大小 |
maxmemory | maxmemory配置指令的值 |
maxmemory_human | 以人類可讀的格式傳回maxmemory配置指令的值 |
maxmemory_policy | maxmemory-policy配置指令的值 |
#mem_fragmentation_ratio | used_memory_rss 和used_memory 之間的比率 |
mem_allocator | 在編譯時指定的, Redis 所使用的記憶體分配器。可以是libc 、 jemalloc 或tcmalloc |
active_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 的值可以驗證這種情況是否發生。
info persistence
#以下是所有persistence 相關的資訊:
參數名稱 | 意義 |
---|---|
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 | ## 正在進行的AOF重寫操作的持續時間(如果有)|
上次AOF重寫操作的狀態 | |
上一次AOF寫入操作的狀態 | |
上次AOF重寫操作期間copy-on-write指派的位元組大小 |
AOF
如果啟用了AOF,則會加入以下這些額外的欄位:參數名稱 | 意思 |
---|---|
##目前的AOF檔案大小 | |
aof_base_size | 上次啟動或重寫時的AOF檔案大小 |
aof_pending_rewrite | 指示AOF重寫操作是否會在目前RDB儲存作業完成後立即執行的標誌。 |
aof_buffer_length | AOF緩衝區大小 |
aof_rewrite_buffer_length | AOF重寫緩衝區大小 |
在後台IO佇列中等待fsync處理的任務數
aof_delayed_fsyncloading | 如果正在執行載入操作,將會新增這些額外的欄位:|
---|---|
參數名稱 | |
loading_start_time | 載入操作的開始時間(基於紀元的時間戳記) |
loading_total_bytes | 檔案總大小 |
loading_loaded_bytes | 已經載入的位元組數 |
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 相關的資訊:
參數名稱 | ##意思 |
---|---|
如果實例是從節點,則會提供以下這些額外欄位: | |
---|---|
意思 | |
##master_host | |
#master_port | |
#master_link_status |
master_sync_in_progress | 指示主節點正在與從節點同步 |
---|---|
參數名稱 | |
意思 |
#master_sync_left_bytes同步完成前剩餘的位元組數 | |
---|---|
在SYNC作業期間上次自傳輸IO以來的秒數 |
意思 | |
---|---|
自連接斷開以來,經過的秒數 |
含義
#connected_slaves | 已連接的從節點數|
---|---|
info CPU | |
意思 | |
used_cpu_sys
#used_cpu_user | ##由Redis伺服器消耗的使用者CPU#used_cpu_sys_children |
---|---|
#used_cpu_user_children | ##由後台程序消耗的使用者CPU |
info cluster
#cluster部分目前只包含一個唯一的欄位:
參數名稱 | 含義 |
---|---|
#cluster_enabled | 表示已啟用Redis叢集 |
本文轉載自:https://juejin.cn/post/7014398047916883998
更多程式相關知識,請訪問:程式設計影片! !
以上是深入解析Redis中的Info指令的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Redis支持多種數據結構,具體包括:1.字符串(String),適合存儲單一值數據;2.列表(List),適用於隊列和棧;3.集合(Set),用於存儲不重複數據;4.有序集合(SortedSet),適用於排行榜和優先級隊列;5.哈希表(Hash),適合存儲對像或結構化數據。

Redis計數器是一種使用Redis鍵值對存儲來實現計數操作的機制,包含以下步驟:創建計數器鍵、增加計數、減少計數、重置計數和獲取計數。 Redis計數器的優勢包括速度快、高並發、持久性和簡單易用。它可用於用戶訪問計數、實時指標跟踪、遊戲分數和排名以及訂單處理計數等場景。

使用 Redis 命令行工具 (redis-cli) 可通過以下步驟管理和操作 Redis:連接到服務器,指定地址和端口。使用命令名稱和參數向服務器發送命令。使用 HELP 命令查看特定命令的幫助信息。使用 QUIT 命令退出命令行工具。

Redis集群模式通過分片將Redis實例部署到多個服務器,提高可擴展性和可用性。搭建步驟如下:創建奇數個Redis實例,端口不同;創建3個sentinel實例,監控Redis實例並進行故障轉移;配置sentinel配置文件,添加監控Redis實例信息和故障轉移設置;配置Redis實例配置文件,啟用集群模式並指定集群信息文件路徑;創建nodes.conf文件,包含各Redis實例的信息;啟動集群,執行create命令創建集群並指定副本數量;登錄集群執行CLUSTER INFO命令驗證集群狀態;使

要從 Redis 讀取隊列,需要獲取隊列名稱、使用 LPOP 命令讀取元素,並處理空隊列。具體步驟如下:獲取隊列名稱:以 "queue:" 前綴命名,如 "queue:my-queue"。使用 LPOP 命令:從隊列頭部彈出元素並返回其值,如 LPOP queue:my-queue。處理空隊列:如果隊列為空,LPOP 返回 nil,可先檢查隊列是否存在再讀取元素。

Redis 集群中使用 zset:zset 是一種有序集合,將元素與評分關聯。分片策略: a. 哈希分片:根據 zset 鍵的哈希值分佈。 b. 範圍分片:根據元素評分劃分為範圍,並將每個範圍分配給不同的節點。讀寫操作: a. 讀操作:如果 zset 鍵屬於當前節點的分片,則在本地處理;否則,路由到相應的分片。 b. 寫入操作:始終路由到持有 zset 鍵的分片。

如何清空 Redis 數據:使用 FLUSHALL 命令清除所有鍵值。使用 FLUSHDB 命令清除當前選定數據庫的鍵值。使用 SELECT 切換數據庫,再使用 FLUSHDB 清除多個數據庫。使用 DEL 命令刪除特定鍵。使用 redis-cli 工具清空數據。

Redis數據過期策略有兩種:定期刪除:定期掃描刪除過期鍵,可通過 expired-time-cap-remove-count、expired-time-cap-remove-delay 參數設置。惰性刪除:僅在讀取或寫入鍵時檢查刪除過期鍵,可通過 lazyfree-lazy-eviction、lazyfree-lazy-expire、lazyfree-lazy-user-del 參數設置。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Dreamweaver CS6
視覺化網頁開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能