redis資料備份和遷移工具redis-dump安裝和使用初探

chenfeng發表於2018-09-28

一.安裝:

# git clone

Initialized empty Git repository in /root/shell/20180928/redis-dump/.git/

remote: Enumerating objects: 691, done.

remote: Total 691 (delta 0), reused 0 (delta 0), pack-reused 691

Receiving objects: 100% (691/691), 2.09 MiB | 53 KiB/s, done.

Resolving deltas: 100% (293/293), done.


#gem install redis

Fetching: redis-4.0.2.gem (100%)

Successfully installed redis-4.0.2

Parsing documentation for redis-4.0.2

Installing ri documentation for redis-4.0.2

Done installing documentation for redis after 3 seconds

1 gem installed


#gem install uri-redis

Fetching: uri-redis-0.4.2.gem (100%)

Successfully installed uri-redis-0.4.2

Parsing documentation for uri-redis-0.4.2

Installing ri documentation for uri-redis-0.4.2

Done installing documentation for uri-redis after 0 seconds

1 gem installed


#gem install yajl-ruby

Fetching: yajl-ruby-1.4.1.gem (100%)

Building native extensions.  This could take a while...

Successfully installed yajl-ruby-1.4.1

Parsing documentation for yajl-ruby-1.4.1

Installing ri documentation for yajl-ruby-1.4.1

Done installing documentation for yajl-ruby after 1 seconds

1 gem installed


#gem install drydock

Fetching: drydock-0.6.9.gem (100%)

Successfully installed drydock-0.6.9

Parsing documentation for drydock-0.6.9

Installing ri documentation for drydock-0.6.9

Done installing documentation for drydock after 1 seconds

1 gem installed


#ruby -rubygems bin/redis-dump

{"db":0,"key":"192.168.184.122:6379:CommandCount:1528291051","ttl":-1,"type":"zset","value":[["LLEN",1.0],["DEL",3.0],["BRPOP",7.0],["RPOP",234.0],["SELECT",236.0],["HGET",360.0],["LPUSH",437.0],["GET",460.0]],"size":68}

{"db":0,"key":"192.168.184.226:6379:KeyCount:1528190344","ttl":-1,"type":"zset","value":[["1",1.0],["None",2.0],["zhsq_kb_comment_data",9.0],["zhsq_ecom_comment_buffer",36.0],["zhsq_topic_filter_buffer",120.0],["zhsq_filter_buffer",132.0],["zhsq_topic_data",183.0],["zhsq_mon_buffer",191.0],["zhsq_data",214.0],["zhsq_jfilter_data",225.0]],"size":190}

{"db":0,"key":"192.168.184.122:6379:CommandCountByMinute","ttl":-1,"type":"hash","value":{"180605:9:23":"22393","180606:13:16":"945","180606:13:17":"3568","180606:13:20":"11768"},"size":64}

{"db":0,"key":"192.168.184.220:6379:CommandCountByMinute","ttl":-1,"type":"hash","value":{"180605:9:23":"22998","180606:13:16":"993","180606:13:17":"3818","180606:13:20":"12101"},"size":64}

{"db":0,"key":"192.168.184.213:6379:KeyCount:1528291078","ttl":-1,"type":"zset","value":[["*",1845.0]],"size":7}

.........................................................................................................................................................................

.........................................................................................................................................................................

.........................................................................................................................................................................

.........................................................................................................................................................................

.........................................................................................................................................................................


{"db":1,"key":"hello","ttl":-1,"type":"string","value":"world","size":5}

{"db":5,"key":"dsf","ttl":-1,"type":"string","value":"chenfeng","size":8}

{"db":5,"key":"hello","ttl":-1,"type":"string","value":"world","size":5}

{"db":6,"key":"love","ttl":-1,"type":"string","value":"peihy","size":5}

{"db":6,"key":"dsf","ttl":-1,"type":"string","value":"chenfeng","size":8}

{"db":6,"key":"hello","ttl":-1,"type":"string","value":"world","size":5}

{"db":7,"key":"love","ttl":-1,"type":"string","value":"peihy","size":5}

{"db":7,"key":"chenfeng","ttl":-1,"type":"string","value":"dsf","size":3}


二.使用:

全庫備份例子:

#cd redis-dump/bin

#./redis-dump -u 127.0.0.1  > /root/shell/20180928/db_all.json



只備份redis某個庫的例子:

首先往10號庫裡寫點資料:

#redis-cli

127.0.0.1:6379[1]> select 10

OK

127.0.0.1:6379[10]> set China World

OK

127.0.0.1:6379[10]> set love chenfeng

OK

127.0.0.1:6379[10]> set fuck America

OK


只備份10號庫:

#./redis-dump -u 127.0.0.1 -d 10  > /root/shell/20180928/db_10.json

檢視內容:

[root@alpha-mongo-140-52 ~/shell/20180928/redis-dump/bin]#cat /root/shell/20180928/db_10.json

{"db":10,"key":"fuck","ttl":-1,"type":"string","value":"America","size":7}

{"db":10,"key":"love","ttl":-1,"type":"string","value":"chenfeng","size":8}

{"db":10,"key":"China","ttl":-1,"type":"string","value":"World","size":5}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2215122/,如需轉載,請註明出處,否則將追究法律責任。

相關文章