【问题标题】:Redis's huge files won't delete?Redis的大文件不会删除?
【发布时间】:2014-05-14 18:16:40
【问题描述】:

我正在使用 Redis-server for windows (2.8.4 - MSOpenTech) / windows 8 64bit。

它工作得很好,但即使在我运行之后:

我看到了:(这是我的问题)

问题:

—我不是告诉它擦除所有 DB 吗?那么为什么那些 2/3 的大文件仍然存在呢? 我怎样才能完全删除这些文件? (无需重新生成)

注意 似乎它正在删除键而不释放占用的空间。如果是这样,我怎样才能释放这个未使用的空间?

【问题讨论】:

标签: windows redis redis-server


【解决方案1】:

来自https://github.com/MSOpenTech/redis/issues/83 “Redis 使用 fork() UNIX 系统 API 创建数据存储的时间点快照以存储到磁盘。这会影响 Redis 的几个功能:AOF/RDB 备份、主从同步和集群。Windows 确实如此没有可用的类似 fork 的 API,所以我们不得不通过将 Redis 堆放在可以与子(准分叉)进程共享的内存映射文件中来模拟这种行为。默认情况下,我们设置此文件的大小等于物理内存的大小。为了控制这个文件的大小,我们添加了一个 maxheap 标志。请参阅 msvs\setups\documentation 中的 Redis.Windows.conf 文件(也包括在 NuGet 和 Chocolatey 发行版中)有关此标志的用法的详细信息。"

【讨论】:

  • 这些 qfork.dat redis 文件总共占用 175GB,每个 16GB。 flushdbflushall 没有影响,因此只需停止服务即可删除文件,就像 Windows 上的任何其他文件一样。非常感谢您的洞察力。
  • 在最新的稳定版本中,配置参数被命名为maxmemory
【解决方案2】:

我知道这是一个旧线程,但我在文件大小方面面临同样的问题。

如果你的 C ssd 驱动器有问题(比如我),你可以做一个目录连接:

1) 停止redis服务
2) 将 C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Redis 文件夹移动到另一个驱动器/位置。
3) 在 C:\Windows\ServiceProfiles\NetworkService\AppData\Local 中打开命令提示符,然后执行:

mklink /J "C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Redis" "[newpath]"

PD: [newpath] 必须是绝对的,例如 "D:\directory junctions\Redis"

4)启动redis服务。现在文件在另一个驱动器中。

如果对此命令有疑问,请查看http://ss64.com/nt/mklink.html

【讨论】:

    【解决方案3】:

    我在我的开发机器上遇到了同样的问题。通过停止 redis 服务解决了这个问题,我使用 WinDirStat(这是我最初用来检测问题的方法)永久删除 appdata/local/redis 中的这些文件。

    然后我开始备份 redis,一切正常。

    在执行此相同程序之前,其他人可能希望确保不需要此数据。就我而言,这并不重要,因为这是我的开发工作站。

    【讨论】:

      【解决方案4】:

      当您刷新数据库时,您只会从内存中刷新密钥。我不确定为什么你有不同名称的文件,这可能是 Redis 的 Windows 端口管理文件的方式的产物,但是当你删除密钥时 Redis 本身不会删除文件。您将需要在 Redis 之外管理过时的文件。

      【讨论】:

      • 与您在 Windows 中删除其他文件的方式相同。如果您正在寻找一种从 Windows 服务器中删除文件的编程方式,那是一个根本不同的问题。请记住,如果 Redis 的 Windows 端口在不同时间创建这些,这将再次发生。我会在该端口的邮件列表中询问有关他们如何管理 RDB 文件创建的详细信息——尤其是那些看似临时的文件。
      • 我已经在我的问题中提到这些文件每次都会重新生成
      猜你喜欢
      • 2020-01-26
      • 2016-12-05
      • 1970-01-01
      • 2019-12-31
      • 2014-06-07
      • 2010-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多