我想使用快速过程从Redis集群中删除所有密钥。我知道如何通过使用“ redis-cli FLUSHALL”删除密钥。但是,当数据集很大时,此命令可能会很慢。听说可以通过重新启动Redis服务从Redis缓存中清除所有密钥。我正在本地Mac笔记本电脑上测试此过程。我正在执行以下步骤:-
步骤3之后,我仍然看到按键
仅当我发出此命令时按键才消失-> redis-cli FLUSHALL吗?如何先通过在Mac笔记本电脑上本地重新启动Redis服务来清除密钥,然后再尝试在质量检查服务器上使用?
在redis 4.0及更高版本中,引入了FLUSHALL ASYNC命令,以一种非阻塞方式删除所有密钥的方法。这样可以解决您的问题吗?
重新启动后您会看到密钥,因为启用了RDB或AOF持久性。参见https://redis.io/topics/persistence。
RDB默认情况下处于启用状态。要禁用持久性,您需要编辑redis.conf或以redis-server --save "" --appendonly no
有关如何使用redis-cli将该命令发送到所有群集节点的信息,请参见Is there a way to flushall on a cluster so all keys from master and slaves are deleted from the db。>
如dizzyf所指示,请使用FLUSHALL ASYNC
在后台进行删除。这将为每个数据库创建新的哈希映射,而旧的哈希映射将由后台线程逐渐删除(回收内存)。