网上搜了下,有三种方式,但是个人觉得掌握一种实用的即可。
记录一下 orz
在需要导出数据的 redis 服务器操作:
登录 redis 服务器,然后通过 redis 的客户端进行连接 redis,命令如下:
[root@ ~]# redis-cli
127.0.0.1:6379>
如果没有将 redis-cli 安装成服务,可以进入 redis 的 src 目录下进行客户端的连接
连接成功后,我们可以通过下面的命令找到 redis 的文件存放目录
127.0.0.1:6379> CONFIG GET dir
1) "dir"
2) "/var/lib/redis"
127.0.0.1:6379>
备份保存在 /var/lib/redis 下
下面我们查看一下 redis 数据备份的触发条件,查看 redis 配置文件 /ect/redis.conf ,可以看到 redis 数据备份的触发条件为:
save 900 1 #900 秒内至少有 1 个key被更改,进行备份
save 300 10 #300 秒内至少有 300 个key被更改,进行备份
save 60 10000 #60 秒内至少有 10000 个key被更改,进行备份
我们可以通过 save 的方式直接对此时的数据进行备份,命令如下:
[root@ ~]# redis-cli
127.0.0.1:6379> save #数据备份
127.0.0.1:6379> #退出
这个时候我们可以在 redis 的文件存放目录 /var/lib/redis 目录下看到刚刚备份的 dump.rdb 文件
在需要导入数据的 redis 服务器操作:
登录目标 redis 服务器,我们先停止 redis 服务:
service redis stop #停止 redis 服务
然后进入 redis 的文件存放目录 /var/lib/redis,把刚刚备份的dump.rdb 文件替换该目录下的 dump.rdb 文件
(建议先备份当前目录下的 dump.rdb 文件),重启 redis 服务
service redis start #启动 redis 服务
到此,redis 数据迁移完成
缺点:不能导入导出指定的数据。如果想实现只导入/出指定数据,可以写个 shell 脚本 orz