文章内容

2022/12/28 16:03:48,作 者: 黄兵

Redis 迁移过程

最近需要迁移 Redis,在迁移过程中遇到一些问题,为了以后迁移不再犯相同错误,对整个迁移过程做一个完整记录。

源数据库:是指需要被迁移的 Redis 数据库。

目标数据库:是最终被迁移到的 Redis 数据库。

源数据库操作

首先对源数据库的数据进行备份,登录源 Redis 之后执行如下命令:

127.0.0.1:6379> bgsave
Background saving started

之后查看备份文件保存的位置:

127.0.0.1:6379> CONFIG GET dir
1) "dir"
2) "/var/lib/redis"

退出 Redis,执行如下命令查看备份的文件名:

sudo ls /var/lib/redis

该目录下只有一个 dump.rdb 文件,也就是刚才备份的文件,我们使用 scp 命令将整个文件复制到另外一台服务器,命令如下:

sudo scp -r -i TencentCloud_HK_Convert /home/ubuntu/dump.rdb ubuntu@172.19.0.5:/home/ubuntu/

需要说明的是,我先将 dump.rdb 文件复制到 /home/ubuntu/,目录下面。

目标数据库操作

停止 Redis 数据库,执行如下命令:

sudo systemctl stop redis.service

之后将刚才复制过来的 dump.rdb 文件复制到 /var/lib/redis 目录下面,执行如下命令:

sudo mv dump.rdb /var/lib/redis/

之后重新启动 Redis,执行如下命令:

sudo systemctl restart redis.service

如果 Redis 启动失败,报如下错误:

systemd: redis-server.service: Can’t open PID file /run/redis/redis-server.pid (yet?) after start: Operation not permitted

我们刚才复制过去的文件变成 Ubuntu 可读可写,而原来的文件是 redis 用户和组可读可写,因此需要改变 dump.rdb 的文件用户与组,执行如下命令:

sudo chown -R redis.redis /var/lib/redis/dump.rdb

即可改变 dump.rdb 文件的用户和组。

再次重新启动 Redis,问题解决,我们登录 Redis,看一下数据是否存在。

使用如下命令:

redis-cli
127.0.0.1:6379> keys *

经过检查所有的数据都存在,完成迁移。


参考资料:

1、Redis RDB方式数据备份与恢复

2、ubuntu修改文件或目录的拥有者


其它相关推荐:

1、Ubuntu 20.04 安装 Redis

2、Redis 占用内存过多导致硬盘大量读操作

3、redis.exceptions.ConnectionError: Error 111 connecting to redis-server:6379. Connection refused.

4、Redis 过期监控示例

5、redis.Redis 和 redis.StrictRedis 的区别


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - Redis 迁移过程

分享到:

发表评论

评论列表