Ubuntu的Redis AOF文件的默认位置是什么?

时间:2018-05-24 08:37:14

标签: redis ubuntu-16.04

背景

昨天我们的机器出乎意料地崩溃,我们的Redis AOF文件损坏了。

尝试使用sudo systemctl start redis-server启动服务时,我们会收到以下日志:

  

读取仅附加文件的错误文件格式:备份您的   AOF文件,然后使用./redis-check-aof --fix

研究

显然这看起来像是一个简单的错误修复,只需执行./redis-check-aof --fix <filename>

除非我对该文件的位置知之甚少。

我已经在Github讨论中搜索了这个问题,但遗憾的是没有人为我提供该文件的位置:

持久性文档也没有提到此文件的位置:

功能

这些是我运行Redis的系统的规格:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:        16.04
Codename:       xenial

问题

此文件位于何处?

4 个答案:

答案 0 :(得分:5)

您有两种选择:

  1. 找到Redis的配置文件,通常名为redis.confdirappendfilename配置指定AOF文件的目录和文件名。
  2. 使用redis-cli连接到Redis,并使用CONFIG GET命令获取dir配置,即CONFIG GET dirAOF文件应位于此目录下。

答案 1 :(得分:1)

路径通常为/var/lib/redis/appendonly.aof,您将需要运行sudo redis-check-aof --fix /var/lib/redis/appendonly.aof

答案 2 :(得分:1)

如果您使用docker并将卷附加到/ data,则appendonly.aof的路径将为:/data/appendonly.aof

答案 3 :(得分:1)

就我而言,我使用的是 docker。我在没有使用 --appendonly yes 的情况下启动了 redis 服务器,然后它启动时没有任何问题。然后像@for-stack 所说的那样运行 CONFIG GET dir 并得到这个输出:

1) "dir"
2) "/data"

于是我在 /data 路径下检查并找到了文件 appendonly.aof

然后我运行 /usr/local/bin/redis-check-aof --fix /data/appendonly.aof 来解决这个问题。