【问题标题】:redis hangs on flushall commandredis 挂在 flushall 命令上
【发布时间】:2014-08-28 23:32:47
【问题描述】:

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

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

但它挂在我巨大的 redis 实例上(在我的情况下大约为 20GB),然后我终止了 redis 服务器,清除了 redis 备份目录并重新启动了 redis 服务器。一切似乎都很好,但这样做是好方法吗?为什么flushall挂起?

【问题讨论】:

    标签: redis flush


    【解决方案1】:

    FLUSHALL ASYNC(Redis 4.0.0 或更高版本)

    Redis 现在可以在不同线程的后台删除键,而不会阻塞服务器。 FLUSHALL 和 FLUSHDB 添加了 ASYNC 选项,以便异步释放整个数据集或单个数据库。

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

    FLUSHALL

    【讨论】:

      【解决方案2】:

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

      kill -9 redisPID
      rm dump.rdb
      service redis restart
      

      像魅力一样工作))

      【讨论】:

        【解决方案3】:

        它挂起是因为它必须删除数百万个项目。这需要一段时间,因为它必须扫描所有内容。您可能还交换了部分数据。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-09-06
          • 2023-03-28
          • 2012-03-06
          • 2022-10-31
          • 2015-06-05
          • 2014-09-21
          • 2015-07-29
          相关资源
          最近更新 更多