天天看點

redis幾種資料導出導入方式環境說明:

環境說明:

172.20.0.1 redis源執行個體

172.20.0.2 redis目标執行個體

172.20.0.3 任意linux系統

一、redis-dump方式

1.安裝redis-dump工具

[[email protected] ~]# yum install ruby rubygems ruby-devel -y
           

更改gem源

[[email protected] ~]# gem sources -a http://ruby.taobao.org
Error fetching http://ruby.taobao.org:
    bad response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz)
           

通路

http://ruby.taobao.org

,公告通知鏡像維護站點已遷往Ruby China鏡像

#gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
[[email protected] ~]# gem sources --add http://gems.ruby-china.org/ --remove http://rubygems.org/
http://gems.ruby-china.org/ added to sources
source http://rubygems.org/ not present in cache
[[email protected] ~]# gem sources -l
*** CURRENT SOURCES ***
 
http://gems.ruby-china.org/
[[email protected] ~]# gem install redis-dump -V
           

2.redis-dump導出

[[email protected] ~]# redis-dump -u :[email protected]:6379 > 172.20.0.1.json
           

3.redis-load導入

[[email protected] ~]# cat 172.20.0.1.json | redis-load -u :[email protected]:6379
           

二、aof導入方式

1.源執行個體生成aof資料

清空上文目标執行個體全部資料

[[email protected] ~]# redis-cli -h 172.20.0.2 -a password flushall
OK
           

源執行個體開啟aof功能,将在dir目錄下生成appendonly.aof檔案

[[email protected] ~]# redis-cli -h 172.20.0.1 -a password config set appendonly yes
OK
           

2.目标執行個體導入aof資料

假設appendonly.aof就在目前路徑下

[[email protected] ~]# redis-cli -h 172.20.0.2 -a password --pipe < appendonly.aof
All data transferred. Waiting for the last reply...
Last reply received from server.
errors: 0, replies: 5
           

源執行個體關閉aof功能

[[email protected] ~]# redis-cli -h 172.20.0.1 -a password config set appendonly no
OK
           

三、rdb檔案遷移方式

暫略

四、源執行個體db0遷移至目标執行個體db1

[[email protected] ~]# cat redis_mv.sh
#!/bin/bash
redis-cli -h 172.20.0.1 -p 6379 -a password -n 0 keys "*" | while read key
do
    redis-cli -h 172.20.0.1 -p 6379 -a password -n 0 --raw dump $key | perl -pe 'chomp if eof' | redis-cli -h 172.20.0.2 -p 6379 -a password -n 1 -x restore $key 0
    echo "migrate key $key"
done
           

繼續閱讀