Redis中的数据目录在哪里?

85

在将一些数据写入 Redis 服务器后,我可以从客户端读取数据。 但是,我该如何在文件系统中找到数据目录?


4
/var/lib/redis/dump.rdb(Ubuntu) - guettli
3个回答

147

最快的方法:使用redis-cli。

redis-cli config get dir

如果您已经配置了身份验证,您需要使用-a密码传递它,将“password”替换为您的密码。


18
这个方法对我不起作用,它返回了一个完全错误的目录。我在/usr/local/etc/redis.conf找到了我的配置文件。 - gdvalderrama
4
它会为你连接的实例提供配置。如果没有,报告一个错误。 - The Real Bill
3
此命令将根据redis.conf文件或默认配置(如果您没有配置文件)返回应用程序目录位置,而不是配置文件位置。 - Salman El Farisi
这将输出两个目录;哪一个是正确的? - DylanYoung
在运行Docker时,是否有一种可以保持一致的响应?例如,在运行Mongo时,我会像这样映射卷:"'./.mongo:/data/db'",这在本地开发过程中控制数据位置非常有用。我正在尝试找到Redis的等效方法。 - Eric Burel

39

找到你的Redis配置目录,可能是/etc/redis。然后查找名为redis.conf的配置文件,并找到以dir开头的行。

它会类似于这样:

dir /etc/redis/database

如果你懒得寻找,这个方法虽然缓慢但一定会有所帮助 :-)

sudo find / -name "redis.conf" -exec grep "^dir" {} \; 2> /dev/null
dir /etc/redis

或者如果你也想要配置文件的文件名:

sudo find / -name "redis.conf" -exec grep -H "^dir" {} \; 2> /dev/null
/private/etc/redis/redis.conf:dir /etc/redis

您可以检查的其他可能性是Redis是否以其自定义配置文件作为第一个参数启动,例如:

redis-server /path/to.custom/config-file

或者使用命令行设置 dir 选项,像这样:

redis-server dir /path/to/data
ps -aef | grep redis

寻找这些选项。


3

由于Redis配置文件可能位于多个可能的位置(取决于系统或容器,例如在我的情况下是/opt/redis/),因此查找RDB文件的当前配置位置的一般解决方案(如果使用配置文件,则设置为dirredis.conf中 - 如果使用了配置文件*)是:

$ cat $(cd / && find | grep redis.conf) | grep dir

请注意,Redis默认情况下不会提供任何配置文件(使用内置配置,具体取决于版本,请参见文档),这也适用于官方的redis:latest容器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接