如何使用特定的 .rdb 文件启动 redis?

Har*_*nch 3 redis redis-server redis-cli

我在没有密码的情况下安装了 redis。然后我尝试输入密码但没有成功,并决定从我的服务器中删除所有与 redis 相关的内容。之后,我再次安装了redis并成功设置了密码。问题是现在正在创建一个新数据库而不是从旧数据库中读取。我正在从 sabe 目录运行相同的命令。$~/ redis-server

我还尝试检查是否正在生成一个新的 dump.rdb 文件:

find / -type f -name "*.rdb"
Run Code Online (Sandbox Code Playgroud)

但只是找到我dump.rdb想使用的正确文件。

有没有办法将我的最后一个数据库导入到这个新数据库中?或者,有没有办法使用该correct dump.rdb文件启动我的服务器?

Ami*_*ial 6

最简单的方法是

redis-server --dbfilename dump.rdb --dir /home/in_which_directory_rdb_file_exists
Run Code Online (Sandbox Code Playgroud)

根据您的要求更改名称.rdb file name和名称。directory


Sey*_*ati 5

停止redis-server

sudo service redis-server stop
Run Code Online (Sandbox Code Playgroud)

将您的 rdb 文件复制到正确的路径:

sudo cp /path/to/rdb/dump.rdb /var/lib/redis/dump.rdb
Run Code Online (Sandbox Code Playgroud)

使 redis 成为新 rdb 文件的所有者:

sudo chown redis: /var/lib/redis/dump.rdb
Run Code Online (Sandbox Code Playgroud)

/etc/redis/redis.conf.

确保这两行存在并且没有注释:

dbfilename dump.rdb
dir /var/lib/redis
Run Code Online (Sandbox Code Playgroud)

通过将appendonly选项更改为no(因为redis将首先考虑 tht 方法)来关闭其他持久性方法:

appendonly yes
Run Code Online (Sandbox Code Playgroud)

保存并关闭配置文件并启动redis-server

sudo service redis-server start
Run Code Online (Sandbox Code Playgroud)

如果redis-server与您的rb文件兼容,这将起作用。