如何查看Redis集群狀態及節點信息?

Redis是一個開源、高性能的非關係型key-value存儲系統。在實際應用中,我們經常需要查看Redis集群的狀態以及節點信息,這樣可以方便我們了解Redis集群的健康狀態、掌握節點的信息分布以及定位出現問題的節點等。本文將介紹如何查看Redis集群狀態及節點信息。

一、使用redis-cluster工具Gossip協議查看集群狀態

redis-cluster工具自帶Gossip協議,可以自動廣播節點信息給其他節點,並收集節點信息,從而形成整個集群的狀態視圖。下面是示例代碼:

redis-cli -c -h ${redisClusterHost} -p ${redisClusterPort}
# 進入redis-cli模式後,輸入下面的命令即可查看集群狀態
cluster nodes

執行上述命令後,集群狀態將以一張表格的形式展現在屏幕上,表格的每一行代表一個節點。可以通過表格內容了解每個節點的ID、IP地址、埠,以及節點狀態、負責的槽位等信息,如下所示:

40f44a0eb25cf9d868a76a02305258bd4b8e5f34 127.0.0.1:6300@16380 master - 0 1596414494000 3 connected 5461-10922
58c6e4d9b15d72f0c60cc9d5f4532fbdfb69af04 127.0.0.1:6301@16381 master - 0 1596414494522 2 connected 10923-16383
c2c3cb110b88adb31b6377787411d749a3482439 127.0.0.1:6303@16383 myself,master - 0 1596414494000 1 connected 0-5460

二、使用redis-trib.rb工具查看集群狀態

redis-trib.rb是Redis官方提供的集群管理工具,同時也提供了查看Redis集群狀態的命令。下面是示例代碼:

redis-trib.rb info ${redisClusterHost}:${redisClusterPort}

執行上述命令後,將列印出集群狀態,包括集群的大小、可用的節點數量、slots的狀態等信息。例如:

127.0.0.1:6300 (40f44a0e...) -> 0 keys | 5462 slots | 1 slaves.
127.0.0.1:6301 (58c6e4d9...) -> 0 keys | 5462 slots | 1 slaves.
127.0.0.1:6303 (c2c3cb11...) -> 0 keys | 5461 slots | 1 slaves.
[OK] 0 keys in 3 masters.
0.00 keys per slot on average.

三、使用redis-cli工具查看單節點信息

當我們需要查看某個Redis節點的詳細信息時,可以使用redis-cli工具來實現。下面是示例代碼:

redis-cli -h ${redisNodeHost} -p ${redisNodePort}
# 進入redis-cli模式後,輸入下面的命令即可查看單節點信息
info

執行上述命令後,將列印出該節點的狀態信息,包括節點ID、運行時間、客戶端連接數、內存使用情況、命令統計信息等等。例如:

# Server
redis_version:5.0.7
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:70ab23e9cdddf2dc
redis_mode:cluster
os:Linux 4.19.76-linuxkit x86_64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:atomic-builtin
gcc_version:8.3.0
process_id:1
run_id:d8fb0e19bd9c9da146f70ddbecd22a56bc8707e0
tcp_port:6379
uptime_in_seconds:904352
uptime_in_days:10
hz:10
configured_hz:10
lru_clock:15750137
executable:/data/redis-server
config_file:

# Clients
connected_clients:9
client_recent_max_input_buffer:2
client_recent_max_output_buffer:0
blocked_clients:0

# Memory
used_memory:586112
used_memory_human:572.34K
used_memory_rss:784384
used_memory_rss_human:765.87K
used_memory_peak:614344
used_memory_peak_human:599.79K
used_memory_peak_perc:95.64%
used_memory_overhead:575040
used_memory_startup:790080
used_memory_dataset:11072
used_memory_dataset_perc:18.92%
allocator_allocated:1202664
allocator_active:1249280
allocator_resident:9571328
total_system_memory:8361662976
total_system_memory_human:7.79G
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:0
maxmemory_human:0B
maxmemory_policy:noeviction
allocator_frag_ratio:1.04
allocator_frag_bytes:46816
allocator_rss_ratio:7.67
allocator_rss_bytes:8322048
rss_overhead_ratio:0.08
rss_overhead_bytes:-8781824

四、使用redis-cli工具查看槽位分布情況

在Redis集群中,我們可以通過槽位分布情況來了解集群數據的分布情況。下面是示例代碼:

redis-cli -h ${redisClusterHost} -p ${redisClusterPort} -c
# 進入redis-cli模式後,輸入下面的命令即可查看槽位分布情況
cluster slots

執行上述命令後,將列印出集群槽位的分布情況,以及分配在對應節點上的槽位範圍。例如:

1) 1) (integer) 5461
   2) (integer) 10922
   3) 1) "127.0.0.1"
      2) (integer) 6301
      3) "58c6e4d9b15d72f0c60cc9d5f4532fbdfb69af04"
   4) 1) "127.0.0.1"
      2) (integer) 6303
      3) "c2c3cb110b88adb31b6377787411d749a3482439"
2) 1) (integer) 10923
   2) (integer) 16383
   3) 1) "127.0.0.1"
      2) (integer) 6301
      3) "58c6e4d9b15d72f0c60cc9d5f4532fbdfb69af04"
   4) 1) "127.0.0.1"
      2) (integer) 6303
      3) "c2c3cb110b88adb31b6377787411d749a3482439"
3) 1) (integer) 0
   2) (integer) 5460
   3) 1) "127.0.0.1"
      2) (integer) 6300
      3) "40f44a0eb25cf9d868a76a02305258bd4b8e5f34"

五、小結

本文介紹了如何通過redis-cluster和redis-trib.rb工具來查看Redis集群狀態及節點信息,以及如何使用redis-cli工具來查看單節點信息和槽位分布情況。這些方法可以幫助我們更好地了解Redis集群的健康狀態,在面對節點問題時也能夠更快地定位問題。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/233990.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-11 17:12
下一篇 2024-12-11 17:12

相關推薦

  • Java 監控介面返回信息報錯信息怎麼處理

    本文將從多個方面對 Java 監控介面返回信息報錯信息的處理方法進行詳細的闡述,其中包括如何捕獲異常、如何使用日誌輸出錯誤信息、以及如何通過異常處理機制解決報錯問題等等。以下是詳細…

    編程 2025-04-29
  • 使用Python爬蟲獲取電影信息的實現方法

    本文將介紹如何使用Python編寫爬蟲程序,來獲取和處理電影數據。需要了解基本的Python編程語言知識,並使用BeautifulSoup庫和Requests庫進行爬取。 一、準備…

    編程 2025-04-28
  • 使用Go-Redis獲取Redis集群內存使用率

    本文旨在介紹如何使用Go-Redis獲取Redis集群的內存使用率。 一、Go-Redis簡介 Go-Redis是一個用於連接Redis伺服器的Golang客戶端。它支持Redis…

    編程 2025-04-28
  • Python爬取網頁信息

    本文將從多個方面對Python爬取網頁信息做詳細的闡述。 一、爬蟲介紹 爬蟲是一種自動化程序,可以模擬人對網頁進行訪問獲取信息的行為。通過編寫代碼,我們可以指定要獲取的信息,將其從…

    編程 2025-04-28
  • 如何使用Python執行Shell命令並獲取執行過程信息

    本文將介紹如何使用Python執行Shell命令並獲取執行過程信息。我們將從以下幾個方面進行闡述: 一、執行Shell命令 Python內置的subprocess模塊可以方便地執行…

    編程 2025-04-28
  • Python實現身份信息模擬生成與查驗

    本文將從以下幾個方面對Python實現身份信息模擬生成與查驗進行詳細闡述: 一、身份信息生成 身份信息生成是指通過代碼生成符合身份信息規範的虛假數據。Python中,我們可以使用f…

    編程 2025-04-27
  • Dapper使用getschema獲取表信息

    本文旨在介紹Dapper中使用getschema獲取表信息的方法和注意事項。 一、獲取某張表的所有列信息 使用Dapper獲取某張表信息,可以使用 `IDbConnection.G…

    編程 2025-04-27
  • Redis5.0集群擴容用法介紹

    Redis是一個內存資料庫,越來越受到開發者的歡迎。在開發中,我們經常需要考慮Redis集群的擴容問題。而Redis5.0針對集群擴容方面進行了多項優化和改進,本文將從多個方面詳細…

    編程 2025-04-27
  • 通過提交信息搜索-使用git

    本篇文章重點講解如何使用git通過提交信息來搜索。我們將從多個方面介紹如何使用git來搜索提交信息,並提供相應的代碼示例以供參考。 一、搜索方式 Git提供了三種搜索方式,分別為:…

    編程 2025-04-27
  • 已裝備我軍的空中信息化作戰平台

    本文將會從多個方面詳細闡述已裝備我軍的空中信息化作戰平台。 一、平台概述 已裝備我軍的空中信息化作戰平台是一個全新的作戰系統,具備實時數據採集、處理、分析、共享的能力。它可以在不同…

    編程 2025-04-27

發表回復

登錄後才能評論