簡體   English   中英

如何刪除 redis 集群中的所有內容?

[英]How to delete everything in a redis cluster?

我的 redis 集群出現故障。 一個節點似乎認為它是一個沒有復制的 3 節點集群,另一個節點似乎認為它是單獨的,第三個節點同意第一個。 我想要一個具有 2 個復制節點(不拆分)的 3 節點集群。

我不想弄清楚如何解除我的 redis 集群,而是:我想重新開始。

現有問題如何刪除 Redis 中的所有內容? 不包括集群,這一切都更加復雜。

期望的結果:干凈的安裝。 沒有集群配置。

不幸的是,僅僅重新安裝整個程序似乎是不夠的。 我如何告訴它真的--yes-I-am-really-sure忘記關於它自己的一切以及它知道的所有其他節點? 尤其是:

  • 刪除所有非配置文件集群配置。

命令CLUSTER FORGET讓我走到了一半,但節點不能忘記自己? 為什么不? 無論如何,以某種方式說服他們這樣做可能就足夠了。

困難的部分在於實現這三件事:

  1. redis-cli CLUSTERredis-cli --cluster ,集群命令在兩者之間隨機分配。
  2. 當對涉及兩個節點的東西使用redis-cli --cluster時, -a密碼參數必須提供兩次,在--cluster部分之前和之后。 之后提供的一個是針對目標節點的,之前提供的一個是針對“配置”節點的。
  3. 使用redis CLUSTER的命令僅適用於一個節點,因此必須對每個節點重復。 (他們無法訪問其他節點)

知道了這一點,我們可以繼續擦除必要的東西:

 redis-cli -h host01 -a password CLUSTER NODES

打印具有長標識符的節點列表。 與..一起處理

# forget about the other nodes in the cluster on each node
redis-cli -h host01 -a password1 CLUSTER FORGET <host02 key> 
redis-cli -h host01 -a password1 CLUSTER FORGET <host03 key> 

redis-cli -h host02 -a password2 CLUSTER FORGET <host01 key> 
redis-cli -h host02 -a password2 CLUSTER FORGET <host03 key> 

redis-cli -h host03 -a password3 CLUSTER FORGET <host01 key> 
redis-cli -h host03 -a password3 CLUSTER FORGET <host02 key> 
# flush all data so that the node can be reset
redis-cli -h host01 -a password1 FLUSHALL
redis-cli -h host02 -a password2 FLUSHALL
redis-cli -h host03 -a password3 FLUSHALL
# reset the node 
redis-cli -h host01 -a password1 CLUSTER RESET
redis-cli -h host02 -a password2 CLUSTER RESET
redis-cli -h host03 -a password3 CLUSTER RESET

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM