有没有一种方法可以刷新群集上的所有文件,以便从数据库中删除主服务器和从服务器上的所有密钥

时间:2019-12-26 18:59:02

标签: redis redis-cluster

从文档中看,flushall的工作方式似乎如此,但实际上,它不是那样工作的。当我使用命令flushall时,它仅从cli分配到的数据库实例中刷新键。

Redis flushall documentation

  

删除所有现有数据库的所有键,而不仅仅是当前选择的一个。此命令永远不会失败。

     

此操作的时间复杂度为O(N),N为所有现有数据库中键的数量。

例如,如果我的集群redis-cli已启动并且我搜索了一个密钥,并且节点cli从7000更改为7002,对应于哈希位于的密钥,即服务器7002,然后刷新了所有内容,它将删除该服务器的密钥。

但是,其他键仍然保留。

有没有一种方法可以冲洗掉所有主控和从属中的所有密钥?

1 个答案:

答案 0 :(得分:4)

是的。您可以将cli的library(recipes) #> Loading required package: dplyr #> #> Attaching package: 'dplyr' #> The following objects are masked from 'package:stats': #> #> filter, lag #> The following objects are masked from 'package:base': #> #> intersect, setdiff, setequal, union #> #> Attaching package: 'recipes' #> The following object is masked from 'package:stats': #> #> step data(okc) # No relevel recipe(age ~ diet, data = na.omit(okc)) %>% step_other(diet, threshold = 0.01, other = "infrequent value") %>% step_dummy(diet) %>% prep() %>% juice() %>% names() %>% .[grepl("infrequent", x = .)] #> [1] "diet_infrequent.value" # With relevel after pooling recipe(age ~ diet, data = na.omit(okc)) %>% step_other(diet, threshold = 0.01, other = "infrequent value") %>% step_mutate(diet = relevel(diet, ref = "infrequent value")) %>% step_dummy(diet) %>% prep() %>% juice() %>% names() %>% .[grepl("infrequent", x = .)] #> character(0) # With relevel and no pooling returns error recipe(age ~ diet, data = na.omit(okc)) %>% step_other(diet, threshold = 0.0001, other = "infrequent value") %>% step_mutate(diet = relevel(diet, ref = "infrequent value")) %>% step_dummy(diet) %>% prep() %>% juice() %>% names() %>% .[grepl("infrequent", x = .)] #> Error in relevel.factor(diet, ref = "infrequent value"): 'ref' must be an existing level 开关与--cluster命令一起使用-它会在集群的每个主节点上执行提供的命令(并且由于call是写命令,因此将复制到他们各自的奴隶。)

这应该做到:

FLUSHALL