我使用FLUSHALL命令删除我的redis缓存。来自doc:
删除所有现有数据库的所有密钥,而不仅仅是 目前选择了一个。此命令永远不会失败。
但它挂在我的巨大redis实例上(在我的情况下大约20GB)并且我终止redis服务器,清除redis备份目录并启动redis服务器。一切看起来都不错,但是这样做的好方法呢?为什么flushall会挂?
答案 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命令仅删除调用该命令时存在的键。在异步刷新期间创建的密钥将不受影响。