迁移,备份和恢复redis数据工具——redis-dump

2019-07-17  本文已影响0人  清尘闲聊

介绍

redis-dump 是一个通过 json 数据格式来备份和恢复 redis 数据的的工具,目前是一个公测版本 v0.4。常用于从其它数据库的数据导入到 redis 中,或者 redis 服务间的数据迁移。我用于从 MySQL 的数据导入到 redis 中,但不局限于 MYSQL,只有数据格式是 json 的,redis-dump 都可以导入进 redis 中。

安装

redis-dump 依赖 ruby,要先安装较新的版本,我这用的是 2.6.3 版本。

# 安装好 ruby 后,直接运行下面命令安装
$ gem install redis-dump

使用

它有两个命令:

redis-dump and redis-load

数据备份

$ redis-dump -u 127.0.0.1:6379 > db_full.json

# 备份第15个数据库
$ redis-dump -u 127.0.0.1:6379 -d 15 > db_db15.json

# 数据库有密码的备份,格式为 :<password>@<domain>:<port>
$ redis-dump -u :password@127.0.0.1:6379 > db_full.json

导入

$ < db_full.json redis-load 

# 带密码的导入
$ < db_full.json redis-load -u :password@127.0.0.1:6379

数据格式

{"db":0,"key":"hashkey","ttl":-1,"type":"hash","value":{"field_a":"value_a","field_b":"value_b","field_c":"value_c"},"size":42}
{"db":0,"key":"listkey","ttl":-1,"type":"list","value":["value_0","value_1","value_2","value_0","value_1","value_2"],"size":42}
{"db":0,"key":"setkey","ttl":-1,"type":"set","value":["value_2","value_0","value_1","value_3"],"size":28}
{"db":0,"key":"zsetkey","ttl":-1,"type":"zset","value":[["value_0","100"],["value_1","100"],["value_2","200"],["value_3","300"],["value_4","400"]],"size":50}
{"db":0,"key":"stringkey","ttl":79,"type":"string","value":"stringvalue","size":11}

db: 对应 redis 的库。
key:键。
ttl: 存活时间,单位秒,不失效的话设为 -1。
type: redis 支持的数据类型。
value: 值。

备注:
由于 centos 里最新的 ruby 版本是 2.0。redis-dump不兼容这个版本,需要升级 ruby。可以使用 RVM 来安装新版本的 ruby。

# 下载 rvm-installer
$ curl -O https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer
# 安装 rvm
$ bash rvm-installer stable
$ source /etc/profile.d/rvm.sh
# 查看可以安装的 ruby 版本
$ rvm list known 
# 我这里安装的 2.6.3
$ rvm install ruby 2.6.3
上一篇下一篇

猜你喜欢

热点阅读