redis挂在flushall命令上

时间:2014-08-28 23:32:48

标签: redis flush

我使用FLUSHALL命令删除我的redis缓存。来自doc:

  

删除所有现有数据库的所有密钥,而不仅仅是   目前选择了一个。此命令永远不会失败

但它挂在我的巨大redis实例上(在我的情况下大约20GB)并且我终止redis服务器,清除redis备份目录并启动redis服务器。一切看起来都不错,但是这样做的好方法呢?为什么flushall会挂?

3 个答案:

答案 0 :(得分:2)

它挂起,因为它必须删除数百万个项目。它需要一段时间,因为它必须扫描一切。您可能还有部分数据被换掉了。

您可能需要检查flushall运行时机器是否未交换。

答案 1 :(得分:2)

我遇到了同样的问题,我的带有64G内存的Xeon没有响应大约两个小时。 最后我用了

kill -9 redisPID
rm dump.rdb
service redis restart

像魅力一样工作))

答案 2 :(得分:0)

FLUSHALL ASYNC(Redis 4.0.0或更高版本)

Redis现在可以删除后台线程中的其他线程中的密钥,而不会阻塞服务器。 ASYNC选项已添加到FLUSHALL和FLUSHDB中,以使整个数据集或单个数据库可以异步释放。

异步FLUSHALL和FLUSHDB命令仅删除调用该命令时存在的键。在异步刷新期间创建的密钥将不受影响。

FLUSHALL