如何从redis集群中删除所有键
How to delete all keys from redis cluster
我想使用快速进程从redis 集群中删除所有键。我知道如何使用 "redis-cli FLUSHALL" 删除密钥。但是当数据集很大时,这个命令可能会很慢。听说重启redis服务可以清除redis缓存中的所有key。我正在本地 mac 笔记本电脑上测试这个过程。我正在执行以下步骤:-
- 使用示例命令 redis-cli SET mykey1 "Hello"
在我的本地 redis 服务器上设置许多键
- 然后重新启动redis服务"brew services restart redis"希望在服务备份时删除所有key
- 然后通过 "redis-cli KEYS '*'" 命令获取密钥
我在第 3 步后仍能看到密钥
仅当我发出此命令时密钥才消失--> redis-cli FLUSHALL?我如何通过首先在我的 mac 笔记本电脑上本地重新启动 redis 服务来清除密钥,然后我将在 QA 服务器上尝试?
在 redis 4.0 及更高版本中,引入了 FLUSHALL ASYNC 命令,作为一种以非阻塞方式删除所有键的方法。这会解决您的问题吗?
重启后您会看到密钥,因为启用了 RDB 或 AOF 持久性。参见 https://redis.io/topics/persistence。
RDB 默认启用。要禁用持久性,您需要编辑 redis.conf 或以 redis-server --save "" --appendonly no
开始
请参阅了解如何使用 redis-cli 将命令发送到所有集群节点。
如 dizzyf 所示,使用 FLUSHALL ASYNC
在后台执行删除。这将为每个数据库创建新的哈希映射,而旧的哈希映射将由后台线程逐步删除(回收内存)。
感谢您提供链接。这些非常有帮助。我能够通过使用 --> redis-server --save "" 和 --appendonly no 更改我的 redis.conf 文件来实现结果。所以在这些更改之后,当我现在重新启动 redis 服务时,什么都没有保存。
我想使用快速进程从redis 集群中删除所有键。我知道如何使用 "redis-cli FLUSHALL" 删除密钥。但是当数据集很大时,这个命令可能会很慢。听说重启redis服务可以清除redis缓存中的所有key。我正在本地 mac 笔记本电脑上测试这个过程。我正在执行以下步骤:-
- 使用示例命令 redis-cli SET mykey1 "Hello" 在我的本地 redis 服务器上设置许多键
- 然后重新启动redis服务"brew services restart redis"希望在服务备份时删除所有key
- 然后通过 "redis-cli KEYS '*'" 命令获取密钥
我在第 3 步后仍能看到密钥
仅当我发出此命令时密钥才消失--> redis-cli FLUSHALL?我如何通过首先在我的 mac 笔记本电脑上本地重新启动 redis 服务来清除密钥,然后我将在 QA 服务器上尝试?
在 redis 4.0 及更高版本中,引入了 FLUSHALL ASYNC 命令,作为一种以非阻塞方式删除所有键的方法。这会解决您的问题吗?
重启后您会看到密钥,因为启用了 RDB 或 AOF 持久性。参见 https://redis.io/topics/persistence。
RDB 默认启用。要禁用持久性,您需要编辑 redis.conf 或以 redis-server --save "" --appendonly no
请参阅
如 dizzyf 所示,使用 FLUSHALL ASYNC
在后台执行删除。这将为每个数据库创建新的哈希映射,而旧的哈希映射将由后台线程逐步删除(回收内存)。
感谢您提供链接。这些非常有帮助。我能够通过使用 --> redis-server --save "" 和 --appendonly no 更改我的 redis.conf 文件来实现结果。所以在这些更改之后,当我现在重新启动 redis 服务时,什么都没有保存。