redis挂起在flushall命令上
我使用FLUSHALL命令删除我的redis缓存。从文件: 删除所有现有数据库的所有键,而不仅仅是 当前选定的一个。此命令永远不会失败redis挂起在flushall命令上,redis,flush,Redis,Flush,我使用FLUSHALL命令删除我的redis缓存。从文件: 删除所有现有数据库的所有键,而不仅仅是 当前选定的一个。此命令永远不会失败 但它挂在我巨大的redis实例上(在我的例子中大约是20GB),然后我终止redis服务器,清除redis备份目录并重新启动redis服务器。一切似乎都很好,但这是一个好方法吗?为什么要挂起?它挂起是因为它必须删除数百万项。这需要一段时间,因为它必须扫描所有内容。您可能还交换了部分数据 您可能需要检查机器在flushall运行时是否未交换。我也遇到过同样的问题,
但它挂在我巨大的redis实例上(在我的例子中大约是20GB),然后我终止redis服务器,清除redis备份目录并重新启动redis服务器。一切似乎都很好,但这是一个好方法吗?为什么要挂起?它挂起是因为它必须删除数百万项。这需要一段时间,因为它必须扫描所有内容。您可能还交换了部分数据
您可能需要检查机器在flushall运行时是否未交换。我也遇到过同样的问题,我的xeon 64G内存大约两个小时没有响应。 最后我用
kill -9 redisPID
rm dump.rdb
service redis restart
工作起来很有魅力)FLUSHALL ASYNC(Redis 4.0.0或更高版本)
Redis现在可以在不同的线程中删除后台的密钥,而不会阻塞服务器。FLUSHALL和FLUSHDB中添加了一个异步选项,以便异步释放整个数据集或单个数据库
异步FLUSHDB和FLUSHDB命令仅删除调用命令时存在的键。异步刷新期间创建的密钥将不受影响