我想通过使用快速进程从redis集群中删除所有键。我知道如何用"redis-cli FLUSHALL“删除密钥。但是,当数据集很大时,这个命令可能会很慢。我听说所有的密钥都可以通过重新启动redis服务从redis缓存中清除。我正在本地的mac笔记本电脑上测试这个过程。我现正执行以下步骤:
来获取密钥。
在第三步之后我还能看到钥匙
只有当我发出这个命令-> redis-cli FLUSHALL时,钥匙才会消失?如何通过在我的mac笔记本电脑上本地重新启动redis服务来清除密钥,然后我将在QA服务器上试用?
发布于 2020-02-14 07:34:52
重新启动后可以看到键,因为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在后台执行删除操作。这将为每个数据库创建新的散列映射,而旧的则由后台线程逐步删除(内存回收)。
发布于 2020-02-14 04:14:01
在redis 4.0和更高版本中,引入了FLUSHALL ASYNC命令,作为一种以非阻塞方式删除所有密钥的方法。这能解决你的问题吗?
发布于 2020-02-14 16:35:20
谢谢你的链接。这些都很有帮助。我能够通过使用-> redis-server -保存“和--附录”对我的redis.conf文件进行更改来达到这个目的。因此,在这些更改之后,当我现在重新启动redis服务时,什么都不会保存。
https://stackoverflow.com/questions/60217742
复制相似问题