共计 1541 个字符,预计需要花费 4 分钟才能阅读完成。
何为 Redis?
Redis 是内存中的键值缓存和存储(即数据库),也可以永久保存到磁盘。在本文中,你将了解,如何在 Centos 7 上备份还原您的 redis 数据库。
备份还原说明
默认情况下,Redis 数据将保存到磁盘中的.rdb 文件中,该文件是 Redis 数据集的时间点快照。快照是按照指定的时间间隔进行的,所以对于备份来说是完美的。
数据备份篇
在 Centos 7 和其他 Linux 发行版中,Redis 数据库目录默认是 /var/lib/redis。但是,如果您更改了 redis 存储位置,则可以通过键入以下命令查找:
[root@renwolecom ~]# find / -name *rdb
使用 redis-cli 管理工具进入数据库:[root@renwolecom ~]# redis-cli
由于大部分数据都运行在内存中,redis 只会每隔一段时间保存一次,为获取最新副本,请执行以下命令:10.10.204.64:6379> save
OK
(1.02s)
另外,如果 Redis 设置了用户认证,就需要先验证,再保存,例如:10.10.204.64:6379> auth RenwoleQxl5qpKHrh9khuTW
10.10.204.64:6379> save
之后进行备份即可,例如:[root@renwolecom ~]# cp /var/lib/redis/dump.rdb /apps/redis-backup-20180129
数据还原篇
恢复备份需要您使用恢复文件替换现有的 Redis 数据库文件。为保证原始数据文件不被破坏,我们建议尽可能恢复到新的 Redis 服务器。
停止 Redis 数据库,一旦停止,Redis 数据库处于脱机状态。
[root@renwolecom ~]# systemctl stop redis
如果恢复到原始 Redis 服务器,请重命名当前数据文件,之后再进行恢复:[root@renwolecom ~]# mv /var/lib/redis/dump.rdb /var/lib/redis/dump.rdb.old
[root@renwolecom ~]# cp -p /apps/redis-backup-20180129/dump.rdb /var/lib/redis/dump.rdb
设置 dump.rdb 文件权限,拷贝过来的数据文件,可能不具备 Redis 用户及读取权限,需要手动赋予:[root@renwolecom ~]# chown redis:redis /var/lib/redis/dump.rdb
[root@renwolecom ~]# chmod 660 /var/lib/redis/dump.rdb
启动 redis
[root@renwolecom ~]# systemctl start redis
大功告成!现在你可以登录 redis 核实数据了。
注意说明:
根据需求,关闭 AOF,AOF 跟踪每个写操作到 Redis 数据库。由于我们试图从时间点备份中恢复,所以我们不希望 Redis 重新创建存储在其 AOF 文件中的操作。
是否开启 AOF 可以通过查看文件获悉:
[root@renwolecom ~]# ls /var/lib/redis/
如果看到.aof 后缀的文件,说明你启用了 AOF。
重命名.aof 文件,
[root@renwolecom ~]# mv /var/lib/redis/*.aof /var/lib/redis/appendonly.aof.old
如果有多个.aof 文件,请单独命名。
编辑你的 Redis 配置文件暂时关闭 AOF:
[root@renwolecom ~]# vim /etc/redis/redis.conf
appendonly no
正文完
星哥玩云-微信公众号