redis使用教程

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


分享到:


相關文章: