有没有办法在集群上刷新所有密钥,以便从数据库中删除主密钥和从密钥的所有密钥



从文档中看,这似乎是flushall的工作方式,但实际上并非如此。 当我使用命令flushall时,它只会刷新 cli 分配到的数据库实例中的密钥。

Redis 冲洗所有文档

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

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

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

但是,其他密钥仍然存在。

有没有办法刷新所有意味着删除所有主站和从站的所有键?

是的。您可以将 cli 的--cluster交换机与call命令一起使用 - 它将在集群的每个主节点上执行提供的命令(并将复制到各自的从属节点,因为FLUSHALL是写入命令(。

这应该这样做:

$ redis-cli --cluster call --cluster-only-masters <one-of-the-nodes-address>:<its-port> FLUSHALL

最新更新