Redis启动后是空的,虽然有一个.rdb文件
Redis is empty after startup, altough there is an .rdb file
在我的redis-cli中运行 "shutdown save"之后,等待"save"命令完成(跟随redis日志)并备份我的redis .rdb文件,我尝试从头启动 redis 服务器,它是用一个空数据库启动的 (dbsize =0!!!)。
我能做什么?如何从 .rdb 文件恢复我的 redis?
我建议检查以下内容:
在您的配置文件中,检查 dir
和 dbfilename
属性是否反映了您希望找到 .rdb
文件(当然还要验证正确的 .rdb
文件是否位于预期路径)。
在您的服务器日志中,当启动 Redis 服务时,查看是否看到类似于 DB loaded from disk: x.xxx seconds
的日志消息出现。如果该消息没有出现,或者如果该消息与非常接近 0.000 seconds
的内容一起出现(这可能不是从磁盘加载 11 GB .rdb
文件的合理预期运行时间),那么这可能另一个提示是您的配置没有在正确的位置寻找 .rdb
文件。
问题确实出在我的配置文件中。我将名为 tal.rdb
的 .rdb
文件保存为 old-tal.rdb
,因此它不会受到影响。
然后,我再次启动了我的 Redis 服务器,看到它有 0 个键,插入 10000
键和 运行 save"
命令,结果,我看到它创建了一个文件dump.rdb
(Redis .rdb files
的默认 dbfilename
)在正确的目录路径中,虽然在配置文件中 dbfilename
是 tal.rdb
,所以我理解我的配置文件坏了。为了解决这个问题,我用一个备份文件替换了配置文件,并用 tal.rdb
的副本重新启动了我的 Redis,然后它就正确启动了(10M 键)。
谢谢大家!
我遇到了同样的问题。
"Db loaded in 0.000 second " .and Key * 显示空列表。
为了解决这个问题
- 创建了 dump.rdb 文件的备份。
- 停止服务器。
- 从 redis/dump.rdb 中删除了 dump.rdb 文件。
复制备份到redis文件夹
sudo cp dump.rdb /etc/redis/dump.rdb
重启服务器
127.0.0.1:6379>键 *
有效。
我在服务器迁移中遇到了同样的问题。我在 redis.conf 中检查了 dir
和 dbfilename
指令太多次,但它没有加载密钥。根据我的经验,在服务器迁移中,应该按顺序执行以下步骤:
- 在源服务器中转储密钥(使用保存命令)
- 在目标服务器中转储密钥
- 将目标服务器中的 *.rdb 文件与源服务器中导出的文件交换。
- 重置目标中的 redis 服务。
不要忘记第 2 步。
注意:第 3 步将删除目标服务器中的密钥,这些步骤仅用于服务器迁移。
不要忘记检查 redis.conf 中的 dbfilename
和 dir
指令。
在我的redis-cli中运行 "shutdown save"之后,等待"save"命令完成(跟随redis日志)并备份我的redis .rdb文件,我尝试从头启动 redis 服务器,它是用一个空数据库启动的 (dbsize =0!!!)。
我能做什么?如何从 .rdb 文件恢复我的 redis?
我建议检查以下内容:
在您的配置文件中,检查
dir
和dbfilename
属性是否反映了您希望找到.rdb
文件(当然还要验证正确的.rdb
文件是否位于预期路径)。在您的服务器日志中,当启动 Redis 服务时,查看是否看到类似于
DB loaded from disk: x.xxx seconds
的日志消息出现。如果该消息没有出现,或者如果该消息与非常接近0.000 seconds
的内容一起出现(这可能不是从磁盘加载 11 GB.rdb
文件的合理预期运行时间),那么这可能另一个提示是您的配置没有在正确的位置寻找.rdb
文件。
问题确实出在我的配置文件中。我将名为 tal.rdb
的 .rdb
文件保存为 old-tal.rdb
,因此它不会受到影响。
然后,我再次启动了我的 Redis 服务器,看到它有 0 个键,插入 10000
键和 运行 save"
命令,结果,我看到它创建了一个文件dump.rdb
(Redis .rdb files
的默认 dbfilename
)在正确的目录路径中,虽然在配置文件中 dbfilename
是 tal.rdb
,所以我理解我的配置文件坏了。为了解决这个问题,我用一个备份文件替换了配置文件,并用 tal.rdb
的副本重新启动了我的 Redis,然后它就正确启动了(10M 键)。
谢谢大家!
我遇到了同样的问题。 "Db loaded in 0.000 second " .and Key * 显示空列表。
为了解决这个问题
- 创建了 dump.rdb 文件的备份。
- 停止服务器。
- 从 redis/dump.rdb 中删除了 dump.rdb 文件。
复制备份到redis文件夹
sudo cp dump.rdb /etc/redis/dump.rdb
重启服务器
127.0.0.1:6379>键 *
有效。
我在服务器迁移中遇到了同样的问题。我在 redis.conf 中检查了 dir
和 dbfilename
指令太多次,但它没有加载密钥。根据我的经验,在服务器迁移中,应该按顺序执行以下步骤:
- 在源服务器中转储密钥(使用保存命令)
- 在目标服务器中转储密钥
- 将目标服务器中的 *.rdb 文件与源服务器中导出的文件交换。
- 重置目标中的 redis 服务。
不要忘记第 2 步。
注意:第 3 步将删除目标服务器中的密钥,这些步骤仅用于服务器迁移。
不要忘记检查 redis.conf 中的 dbfilename
和 dir
指令。