首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从redis集群中删除所有键

如何从redis集群中删除所有键
EN

Stack Overflow用户
提问于 2020-02-13 22:59:03
回答 3查看 6.4K关注 0票数 2

我想通过使用快速进程从redis集群中删除所有键。我知道如何用"redis-cli FLUSHALL“删除密钥。但是,当数据集很大时,这个命令可能会很慢。我听说所有的密钥都可以通过重新启动redis服务从redis缓存中清除。我正在本地的mac笔记本电脑上测试这个过程。我现正执行以下步骤:

  1. 通过使用示例命令redis-cli SET mykey1 "Hello“
  2. 在本地redis服务器上设置多个键,然后重新启动redis服务"brew服务重新启动redis”,希望在服务备份
  3. 时删除所有密钥,然后给出"redis-cli keys '*'“命令

来获取密钥。

在第三步之后我还能看到钥匙

只有当我发出这个命令-> redis-cli FLUSHALL时,钥匙才会消失?如何通过在我的mac笔记本电脑上本地重新启动redis服务来清除密钥,然后我将在QA服务器上试用?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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在后台执行删除操作。这将为每个数据库创建新的散列映射,而旧的则由后台线程逐步删除(内存回收)。

票数 2
EN

Stack Overflow用户

发布于 2020-02-14 04:14:01

在redis 4.0和更高版本中,引入了FLUSHALL ASYNC命令,作为一种以非阻塞方式删除所有密钥的方法。这能解决你的问题吗?

https://redis.io/commands/flushall

票数 0
EN

Stack Overflow用户

发布于 2020-02-14 16:35:20

谢谢你的链接。这些都很有帮助。我能够通过使用-> redis-server -保存“和--附录”对我的redis.conf文件进行更改来达到这个目的。因此,在这些更改之后,当我现在重新启动redis服务时,什么都不会保存。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60217742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档