1、redis數據導出導入
redis-dump -u 127.0.0.1:6379 -d 0 >redis.json 導出0庫數據
redis-dump -u 127.0.0.1:6379 -d 1 >test.json 導出1庫數據
cat test.json | redis-load -u 127.0.0.1:6379 導入數據
2、redis數據庫刪除
redis-cli keys “*kline*” > keys.txt #模糊導出相關的keysawk '$0="redis-cli del \""$0"\""' keys.txt > cmd.sh
3、客戶端登陸redis
redis-cli -h 127.0.0.1 -p 6379 -a "password" 密碼登陸
redis-cli 無密碼登陸
4、redis基本操作
set db redis 創建key
del key_name 刪除key
GET db 查看key
dbsize 查看當前庫數量
select 1 進入1庫
keys * 查看所有keys
flushall 刪除所有數據
select 0 flushdb 清理當前庫數據
5、redis-dump遷移
redis-dump需要ruby.2.2.0以上版本,因此,需要先升級。
5.1、更新編譯環境的包
yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison iconv-devel
5.2、安裝RVM,通過RVM安裝升級
curl -L get.rvm.io | bash -s stable
source /etc/profile.d/rvm.shrvm -v //安裝完成後,通過該方法測試是否安裝正常
5.3、更新RVM安裝鏡像
vim /usr/local/rvm/user/db
ruby_url=https://cache.ruby-china.org/pub/ruby
ruby -v //查看ruby版本
rvm list known //列出已知ruby版本
rvm install 2.4 //安裝ruby2.4版本,會自動去匹配
5.4、更新gem版本
gem update --system //需要科學上網
gem -v //查看版本號
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/ //更換源鏡像
gem sources -l //查看源鏡像內容
5.5、安裝redis-dump
gem install redis-dump -V //安裝redis-dumpredis-dump -v //查看版本號及是否安裝正常
redis-dump -u 源地址:6379 -a password > /data/deploy/redis/data/redis_6378.json //導出
< redis_6378.json redis-load -u 目標地址:6379 -a password -n //導入
6、Redis遷移
源服務器:
./redis-cli -h 源IP地址 -a 源密碼 config set appendonly yes //開啟aof功能
開啟後,數據在redis/data/6379/ 文件夾裡面
./redis-cli -h 源IP地址 -a 源密碼 config set appendonly no //關閉aof功能
目標服務器:
./redis-cli -h 目標IP地址 -a 目標密碼 --pipe < data/6379/appendonly.aof
7、腳本遷移
7.1、Redis全量合併
#!/bin/bashsrc_ip=源地址
src_port=6379src_db=0src_pw='密碼'dest_ip=目標地址
dest_port=6379dest_db=0desc_pw='密碼'./redis-cli -h $src_ip -p $src_port -a $src_pw -n $src_db keys "*" | while read keydo./redis-cli -h $src_ip -p $src_port -a $src_pw -n $src_db --raw dump $key | perl -pe 'chomp if eof' | ./redis-cli -h $dest_ip -p $dest_port -a $desc_pw-n $dest_db -x restore $key 0echo "migrate key $key"done
7.2、差異合併
#!/bin/bashsrc_ip=127.0.0.1src_port=8090src_db=14src_pw='1234'dest_ip=127.0.0.1dest_port=6379dest_db=2desc_pw='1234'#要遍歷的keyk=(test ws we)for loop in ${k[*]}doredis-cli -h $src_ip -p $src_port -a $src_pw -n $src_db --raw dump $loop | perl -pe 'chomp if eof' | redis-cli -h $dest_ip -p $dest_port -a $desc_pw -n $dest_db -x restore $loop 0echo "The value is: $loop"done
7.3、導入某個key
redis-cli -h 127.0.0.1 -p 8090 -a 1234 -n 14 --raw dump test | perl -pe 'chomp if eof' | redis-cli -h 127.0.0.1 -p 8090 -a 1234 -n 15 -x restore test 0
閱讀更多 愛踢人生 的文章