1. rdb数据备份恢复方法
-
一定要保证导入数据的服务器至少不能比原来的服务器内存小
-
一定要杀掉当前redis的进程,还有关闭要迁移的服务器的aof功能
redis 127.0.0.1:6379> SAVE
OK
或者
redis-cli -h 127.0.0.1 -p 6379 -a pwd bgsave
该命令将在 redis 安装目录中创建dump.rdb文件。
查找dump.rdb文件位置
redis 127.0.0.1:6379> CONFIG GET dir
1) “dir”
2) “/usr/local/redis/bin”
停止redis服务
redis-cli -p 6379 shutdown
-
以上命令 CONFIG GET dir 输出的 redis 安装目录为 /usr/local/redis/bin。
-
创建 redis 备份文件也可以使用命令 BGSAVE,该命令在后台执行。
127.0.0.1:6379> BGSAVE
Background saving started
2. AOF数据备份恢复方法
开启aof
redis-cli config set appendonly yes
- 假设appendonly.aof就在当前路径下
redis-cli --pipe < appendonly.aof
All data transferred. Waiting for the last reply...
Last reply received from server.
errors: 0, replies: 5
- 源实例关闭aof功能
redis-cli config set appendonly no
OK
3. redis-dump
- 该工具只能导少量数据,超过一定量数据会报错超时
4. redis desktop manager 桌面图形管理工具
- 该工具只能导少量数据,超过一定量数据会把系统内存占满
5 使用redis-dump-load工具
-
Redis-dump-load是基于python2.7,利用redis模块编写的一个导出/导入redis数据的一个python程序。
-
项目地址:https://github.com/p/redis-dump-load
# pip install redis
# cd /usr/local
# git clone https://github.com/p/redis-dump-load.git
# cd redis-dump-load
# ./redisdl.py --help
- 导出数据
# python redisdl.py -H 192.168.1.20 -p 6379 -d 0 -o /tmp/db0.json
# ll /tmp/db0.json
-rw-r--r--. 1 root root 411772591 Oct 17 09:15 /tmp/db0.json
- 导入数据
python redisdl.py -l -H 192.168.204.128 -p 6379 -d 0 /tmp/db0.json
- 注:redisdl.py导入数据时,会去检查redis的版本,由于使用corvus时,检查出的版本为corvus版本,比redis3.0+的版本低,故执行时会报错,需手动更改redisdl.py脚本:
vi redisdl.py
version = [int(part) for part inself.info()['redis_version'].split('.')]
version = 3