Redis集群環境各節點無法互相發現與Hash槽分配異常 CLUSTERDOWN Hash slot not served的解決方式

原創/朱季謙

在搭建Redis5.x版本的集群環境曾出現各節點無法互相發現與Hash槽分配異常 CLUSTERDOWN Hash slot not served的情況,故而把解決方式記錄下來。

在以下三臺虛擬機機器=搭建Redis集群——

192.168.200.160192.168.200.161192.168.200.162

啟動三臺Redis集群,然后連接其中一臺客戶端,隨便set一個指令,測試集群是否可行,結果報出異常(error) CLUSTERDOWN Hash slot not served提示——

[app@hadoop-nn bin]$ ./redis-cli -c -h 192.168.200.162
192.168.200.162:6379> set zhu "test"
(error) CLUSTERDOWN Hash slot not served

首先,先看一下集群各個節點是否能互相發現,執行以下指令查看各個節點連接情況——

192.168.200.162:6379> cluster nodes
8c5809df064ad7234c6475555411afda026c230f :6379@16379 myself,master - 0 0 0 connected

接著再檢查一下當前集群狀態,發現目前狀態為fail,說明集群沒有互連成功——

192.168.200.162:6379> cluster info
cluster_state:fail
cluster_slots_assigned:0
cluster_slots_ok:0
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:1
cluster_size:0
cluster_current_epoch:0
cluster_my_epoch:0
cluster_stats_messages_sent:0
cluster_stats_messages_received:0

發現,三臺Redis搭建的集群沒有互相發現,故而,只需要在其中一臺客戶端上執行以下指令,手動幫助該節點去發現其他兩個節點,因集群是互連的,所以只需要在其中一臺上手動發現另外兩臺即可——

192.168.200.162:6379> cluster meet 192.168.200.160 6379
OK
192.168.200.162:6379> cluster meet 192.168.200.161 6379
OK

完成以上指令,查看各個節點狀態,發現當前節點已經能發現其他兩臺機器節點了——

192.168.200.162:6379> cluster nodes
a0cf910effc52eda7c5561746c42f8bcd710f735 192.168.200.161:6379@16379 master - 0 1639410795898 0 connected
5e5f08f9ec39910cc250239b4f44e701d4b831f5 192.168.200.160:6379@16379 master - 0 1639410794885 1 connected
8c5809df064ad7234c6475555411afda026c230f 192.168.200.162:6379@16379 myself,master - 0 1639410795000 2 connected

再測試集群狀態,發現狀態依然還是失敗,且還報CLUSTERDOWN Hash slot not served異常——

192.168.200.162:6379> cluster info
cluster_state:fail
cluster_slots_assigned:0
cluster_slots_ok:0
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:3
cluster_size:0
cluster_current_epoch:2
cluster_my_epoch:2
cluster_stats_messages_ping_sent:26
cluster_stats_messages_pong_sent:30
cluster_stats_messages_meet_sent:3
cluster_stats_messages_sent:59
cluster_stats_messages_ping_received:30
cluster_stats_messages_pong_received:29
cluster_stats_messages_received:59
192.168.200.162:6379> set zhu "test"
(error) CLUSTERDOWN Hash slot not served

到這一步,說明當前集群存在hash槽異常情況,那么,可以執行以下指令修復下——

[app@hadoop-nn bin]$ ./redis-cli --cluster fix 192.168.200.162:6379

回車執行,頓時就會運行打印很多以下信息,說明正在對16384個hash槽重新分配——

>>> Covering slot 10620 with 192.168.200.162:6379
>>> Covering slot 3059 with 192.168.200.162:6379
>>> Covering slot 9764 with 192.168.200.162:6379
>>> Covering slot 11335 with 192.168.200.162:6379
>>> Covering slot 6368 with 192.168.200.162:6379
>>> Covering slot 4884 with 192.168.200.162:6379
>>> Covering slot 15271 with 192.168.200.162:6379
>>> Covering slot 5109 with 192.168.200.162:6379
......

等運行完成后,我們再檢查一下集群狀態,發現狀態已經由剛剛的fail變出ok了,說明hash槽已經正確分配——

192.168.200.162:6379> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:3
cluster_size:3
cluster_current_epoch:19
cluster_my_epoch:18
cluster_stats_messages_ping_sent:1514
cluster_stats_messages_pong_sent:1486
cluster_stats_messages_meet_sent:3
cluster_stats_messages_sent:3003
cluster_stats_messages_ping_received:1486
cluster_stats_messages_pong_received:1517
cluster_stats_messages_received:3003

最后,在其中一臺集群上輸入以下指令測試下,沒有報異常了——

192.168.200.162:6379> set test zhu
OK

另外,在其他兩臺機器上,輸入以下指令,都可以獲取到192.168.200.162機器redis輸入的測試k-v值了

192.168.200.160:6379> get test
-> Redirected to slot [6918] located at 192.168.200.162:6379
"zhu"

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/165629.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/165629.shtml
英文地址,請注明出處:http://en.pswp.cn/news/165629.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

芯知識 | MP3語音芯片IC的優勢特征及其在現代科技應用中的價值

隨著科技的飛速發展,MP3語音芯片作為一種高度集成的音頻處理解決方案,在現代電子產品中發揮著越來越重要的作用。本文將分析MP3語音芯片的優勢特征,并探討其在各個領域的應用價值。 一、MP3語音芯片的優勢特征 MP3語音芯片具有多種顯著的優…

CC++輸入輸出流介紹

介紹 C中的輸入輸出流主要包括標準輸入輸出流、文件輸入輸出流和內存數據流。 標準輸入輸出流可以通過使用cin和cout進行數據的讀取和輸出文件輸入輸出流可以通過使用ifstream和ofstream對文件進行讀寫操作內存數據流可以通過使用stringstream對字符串進行讀寫操作 應用舉例…

服務器租用收費標準是什么?

服務器在企業轉型中或者是互聯網企業中起著舉足輕重的作用,服務器有強大的存儲能力和計算能力,能夠幫助企業存儲大量信息,完成日常工作,服務器租用就是通過正規的IDC服務器商家那里獲取服務器資源,根據企業自身需求選擇…

Python爬蟲-獲取汽車之家新車優惠價

前言 本文是該專欄的第10篇,后面會持續分享python爬蟲案例干貨,記得關注。 本文以汽車之家新車優惠價為例,獲取各車型的優惠價,示例圖如下: 地址:aHR0cHM6Ly9idXkuYXV0b2hvbWUuY29tLmNuLzAvMC8wLzQyMDAwMC80MjAxMDAvMC0wLTAtMS5odG1sI3B2YXJlYWlkPTIxMTMxOTU= 需求:獲…

OpenStack云計算平臺

目錄 一、OpenStack 1、簡介 2、硬件需求 3、網絡 二、環境搭建 1、安全 2、主機網絡 3、網絡時間協議(NTP) 4、OpenStack包 5、SQL數據庫 6、消息隊列 7、Memcached 一、OpenStack 1、簡介 官網:https://docs.openstack.org/2023.2/ OpenStack系統由…

Zynq-7000系列FPGA使用 Video Processing Subsystem 實現圖像縮放,提供工程源碼和技術支持

目錄 1、前言免責聲明 2、相關方案推薦FPGA圖像處理方案FPGA圖像縮放方案自己寫的HLS圖像縮放方案 3、設計思路詳解Video Processing Subsystem 介紹 4、工程代碼詳解PL 端 FPGA 邏輯設計PS 端 SDK 軟件設計 5、工程移植說明vivado版本不一致處理FPGA型號不一致處理其他注意事項…

給sprite上增加刷光動效

游戲引擎 —— cocos creator 3.52 此動效給動態修改尺寸的圖片增加一層刷光的效果,直接貼代碼 CCEffect %{techniques:- passes:- vert: sprite-vs:vertfrag: sprite-fs:fragdepthStencilState:depthTest: falsedepthWrite: falseblendState:targets:- blend: tr…

Charles 網絡抓包工具詳解與實戰指南

文章目錄 導讀軟件版本Charles基本原理核心功能下載及安裝界面介紹網絡包展示 常用場景介紹PC 端網絡抓包移動端網絡抓包PC 端配置手機端配置 開啟 SSL 代理PC 端和移動端 CA 證書安裝Charles 直接安裝Charles 下載 CA 文件手動安裝 常用操作請求重發請求改寫、動態改寫斷點&am…

Qt+SQLITE數據庫設計的會員卡管理系統

一、前言 本項目演示在QT中使用SQLITE數據庫存儲數據管理的過程。當前以會員卡管理系統為例,寫了一個界面,完成會員卡的注冊,添加,充值,查詢,注銷,導出顧客信息EXECL表格 等功能的實現。 演示 SQLITE數據庫的建表、增、刪、改、查等語句功能實現。 SQLite是一款輕型的…

計算機網絡——物理層相關習題(計算機專業考研全國統考歷年真題)

目錄 2012-34 原題 答案 解析 2018-34 原題 答案 解析 2009/2011-34 原題 答案 解析 2016-34 原題 答案 解析 2014-35/2017-34 原題 答案 解析 2013-34 原題 答案 解析 2015-34 原題 答案 解析 物理層的協議眾多,這是因為物理層…

為啥 有了錘子,看啥都是釘子?

壞處:有了錘子,看啥都是釘子,有何壞處? 事倍功半,甚至適得其反。比如具有高并發設計經驗的人,在初創系統初期,就設計高并發架構,其復雜度大概率無法支持試點業務快速落地&#xff0…

【DevOps】Git 圖文詳解(九):工作中的 Git 實踐

本系列包含: Git 圖文詳解(一):簡介及基礎概念Git 圖文詳解(二):Git 安裝及配置Git 圖文詳解(三):常用的 Git GUIGit 圖文詳解(四)&a…

【SpringMVC】 三層架構

一.lombok工具包 中央倉庫查找這個工具包:https://mvnrepository.com/ 給類添加Data注解就可以獲取gettter和setter方法 , 這樣我們就不必寫getter 和 setter 方法. 也可以給成員屬性添加單獨的getter 和 setter , 針對某個成員屬性單獨添加setter或setter方法. 二.如果使用spr…

ORACLE手動建庫

1.確定oracle的實例名,以及數據庫名 實例名稱: ORACLE_SIDtest 數據庫名稱: test 2.手工創建如下目錄: /oracle/admin/test/adump --對應的是spfile里參數audit_file_dest …

一起學docker系列之七docker容器卷技術

目錄 1 為什么使用容器數據卷?2 數據卷的特點和優勢3 使用數據卷的方法3.1 創建容器并掛載數據卷3.2 容器間數據卷的共享與繼承 4 數據卷的權限設置5 注意事項5.1 解決權限問題5.2 路徑自動創建 結語 對于容器化應用程序的數據管理和持久化,Docker 數據卷…

鏈表的回文結構

題目描述 題目鏈接:鏈表的回文結構_牛客題霸_牛客網 (nowcoder.com) 題目分析 我們的思路是: 找到中間結點逆置后半段比對 我們可以簡單畫個圖來表示一下: ‘ 奇數和偶數都是可以的 找中間結點 我們可以用快慢指針來找中:l…

如何實現圖片輪播(python版)

為了實現圖片自動輪播,我們可以使用Python編寫一個簡單的腳本。首先,我們需要安裝一個名為Pillow的庫來處理圖片。在命令行中輸入以下命令進行安裝: pip install Pillow 接下來,我們編寫一個名為image_slideshow.py的腳本&#x…

leetcode.884——字符串分割(substr),哈希(unordered_map)的練習

884. 兩句話中的不常見單詞 句子 是一串由空格分隔的單詞。每個 單詞 僅由小寫字母組成。 如果某個單詞在其中一個句子中恰好出現一次,在另一個句子中卻 沒有出現 ,那么這個單詞就是 不常見的 。 給你兩個 句子 s1 和 s2 ,返回所有 不常用…

成為AI產品經理——模型構建流程(下)

目錄 1.模型訓練 2.模型驗證 3.模型融合 4.模型部署 上節課我們講了模型設計、特征工程,這節課我們來講模型構建剩下的三個部分:模型訓練、模型驗證和模型融合。 1.模型訓練 模型訓練就是要不斷地訓練、驗證、調優直至讓模型達到最優。 那么怎么達…

Python“牽手”京東商品詳情接口運營場景,京東商品詳情接口調用指南

京東商品詳情接口是一種程序化的接口,通過這個接口,商家或開發者可以使用自己的編程技能,獲取京東平臺上的商品詳細信息。這個接口允許商家根據自身的需求,獲取商品的標題、價格、促銷價、優惠券、庫存、銷量、詳情圖片、SKU屬性、…