Redis数据库恢复困惑求助:dump.rdb路径与CONFIG dir疑问
Redis数据库恢复问题解决指南
1. 先明确CONFIG get dir的作用
dir是Redis的核心配置项,它的作用很明确:
- Redis启动时,会从这个目录加载
dump.rdb持久化文件 - 执行
SAVE/BGSAVE命令时,生成的dump.rdb会自动存到这个目录
简单说,Redis只认这个目录下的dump.rdb(除非启动时手动指定其他路径)。
2. 解决目录不存在的问题
你执行CONFIG get dir得到的/var/lib/redis/6379不存在,先手动创建并配置权限:
sudo mkdir -p /var/lib/redis/6379 sudo chown redis:redis /var/lib/redis/6379 sudo chmod 700 /var/lib/redis/6379
(如果Redis运行用户不是redis,替换成实际运行用户即可)
3. 迁移dump.rdb到正确目录
把你现有的dump.rdb移动到dir指定的目录下:
如果文件在/var/lib/redis:
sudo mv /var/lib/redis/dump.rdb /var/lib/redis/6379/
如果文件在/usr/lib/redis:
sudo mv /usr/lib/redis/dump.rdb /var/lib/redis/6379/
4. 验证恢复结果
先停止Redis服务:
sudo systemctl stop redis
再启动服务:
sudo systemctl start redis
进入Redis客户端后,用KEYS *或DBSIZE命令检查数据是否成功恢复。
5. 为什么之前SAVE生成的文件路径不对?
大概率是这两个原因:
- 你之前执行过
CONFIG SET dir /usr/lib/redis临时修改了存储目录,这种修改是内存级的,重启Redis就会失效 - Redis启动时加载了非默认配置文件,导致
dir配置和默认值不一致
如果想永久修改存储目录,找到Redis配置文件(通常是/etc/redis/redis.conf),修改dir字段后重启服务即可。
内容的提问来源于stack exchange,提问作者Hypothesis
相关产品推荐
相关产品推荐

