从文档中看,这似乎是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