redis學習之叢集報錯Node is not empty

來源:互聯網
上載者:User
寫在前面

繼上一篇redis3.0.x叢集搭建完成之後,當然要用用戶端JedisCluster簡單測試一下叢集啦,這樣就要將redis.conf裡bind 127.0.0.1改成bind +真機ip(我的192.168.161.131),下面簡單地將測試中遇到的問題及解決辦法記錄在本篇。 遇到的問題及解決辦法

在redis.conf裡bind 真機ip後,接著重新執行每個redis.conf,最後再建立叢集,但報錯,如下圖所示:

圖中報的錯即:

[ERR] Node 192.168.161.131:7000 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
這就奇怪了,於是我又去檢查了一下redis.conf,ip我確實改過來了

想了一會發現這三個檔案appendonly.aof dump.rdb nodes.conf是之前執行ip127.0.0.1時產生的,在我改為真機ip後在執行並沒有生效。

這裡解釋一下dump.rdb檔案:

dump.rdb是由Redis伺服器自動產生的 預設情況下 每隔一段時間redis伺服器程式會自動對資料庫做一次遍曆,把記憶體快照寫在一個叫做“dump.rdb”的檔案裡,這個持久化機制叫做SNAPSHOT。有了SNAPSHOT後,如果伺服器宕機,重新啟動redis伺服器程式時redis會自動載入dump.rdb,將資料庫狀態恢複到上一次做SNAPSHOT時的狀態。

知道原因後就好辦了,解決辦法:

1)將每個節點下aof、rdb、nodes.conf本地備份檔案刪除;
2)172.168.63.201:7001> flushdb #清空當前資料庫(可省略)
3)之後再執行指令碼,成功執行;

問題解決了之後就可以成功從java用戶端測試了:

ps:這裡大家不要這樣測試,可以將其寫在設定檔裡,我這裡是為了方便。 寫在最後

其實平時在測試中遇到的很多問題,都可以在網上找到答案,這裡只是簡單的記錄其中的一個。關於關於redis叢集的介紹,瞭解請看 redis中文介紹

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.