【Redis】Sentinel 相關指令 下面整理一份「常用 Redis Sentinel 指令速查」(以你目前 master name = mymaster 為例)。先記得:Sentinel 是連 26379(或你映射的 26380/26381),而且很多命令需要先 AUTH(若你 Sentinel 有開帳密)。 連線與基本檢查 redis-cli -h -p 26379 redis-cli -h -p 26379 --user -a 測連線 PING 10.10.10.202:26379> ping PONG 目前登入的 ACL user(若開 ACL) ACL WHOAMI 授權(若需要) AUTH # 或舊式 AUTH 查 master / topology(最常用) 查所有被監控的 masters(摘要列表) SENTINEL masters 1) 1) "name" 2) "mymaster" 3) "ip" 4) "10.10.10.202" 5) "port" 6) "6379" 7) "runid" 8) "3bf7dbeca2952f3b9bbe3961b2b75bc3c03bc040" 9) "flags" 10) "master" 11) "link-pending-commands" 12) "0" 13) "link-refcount" 14) "1" 15) "last-ping-sent" 16) "0" 17) "last-ok-ping-reply" 18) "533" 19) "last-ping-reply" 20) "533" 21) "down-after-milliseconds" 22) "30000" 23) "info-refresh" 24) "7634" 25) "role-reported" 26) "master" 27) "role-reported-time" 28) "44657033" 29) "config-epoch" 30) "9" 31) "num-slaves" 32) "2" 33) "num-other-sentinels" 34) "2" 35) "quorum" 36) "2" 37) "failover-timeout" 38) "180000" 39) "parallel-syncs" 40) "1" 查特定 master 的詳細資訊 SENTINEL master mymaster 取得 master 的位址(最常用,拿 IP/Port) SENTINEL get-master-addr-by-name mymaster 查 master 的 replicas(從節點清單) SENTINEL replicas mymaster # 舊名(相容) SENTINEL slaves mymaster 查同一個 master 的其他 sentinels SENTINEL sentinels mymaster 健康/狀態判斷(排錯必備) 看 master 是否被標記 down、目前狀態旗標 SENTINEL master mymaster # 觀察 "flags"、"last-ok-ping-reply"、"s-down-time" 等欄位 Sentinel 自己資訊(版本、runid、監控數量) INFO 看 Sentinel 的事件(需要開啟通知才會比較多) SENTINEL ckquorum mymaster 這個會告訴你 quorum 是否足夠(例如你設定 quorum=2,是否能形成共識)。 故障轉移操作(小心用) 立即對指定 master 觸發 failover SENTINEL failover mymaster 中止正在進行的 failover(如果卡住) SENTINEL abortfailover mymaster 主動要求 Sentinel 重新掃描、更新配置(常用在手動改 IP/Port 後) SENTINEL reset mymaster # 或 reset 全部(小心) SENTINEL reset * 動態改監控設定(線上調參) 修改 down-after-milliseconds(多久沒回就判定 down) SENTINEL set mymaster down-after-milliseconds 30000 修改 failover-timeout(failover 超時) SENTINEL set mymaster failover-timeout 180000 修改 parallel-syncs(一次同步幾台 replica) SENTINEL set mymaster parallel-syncs 1 修改 quorum(通常不建議頻繁改) SENTINEL set mymaster quorum 2 查看目前可用的 set 參數(不同版本可能略不同) SENTINEL help 通知與腳本(你目前有 deny) 你現在設定: sentinel deny-scripts-reconfig yes 所以 sentinel 腳本重配置會被限制。常見指令/配置(了解用): 設定通知腳本(在 config 檔內) sentinel notification-script mymaster /path/to/script sentinel client-reconfig-script mymaster /path/to/script 常用排錯流程(超快) Sentinel 能不能連: PING master 位址: SENTINEL get-master-addr-by-name mymaster master 狀態: SENTINEL master mymaster replicas 狀態: SENTINEL replicas mymaster quorum 是否健康: SENTINEL ckquorum mymaster 小提醒(你很常遇到的) Sentinel 不支援 SELECT,因為它不是資料庫服務,是監控/仲裁服務。 SENTINEL get-master-addr-by-name 回的 IP/HostName 對外能不能用,取決於你的網路(Docker 內外網、DNS、announce 等設定)。