导出redis3.0集群查询key的值:
echo "hget StockCodeKey:1 600284" | /data/redis3.0/bin79/redis-cli -c > /data/redis3.0/bin79/xcc.txt
使用redic-cli导入的两种方法:
有兴趣看原文的,参见 http://redis.io/topics/mass-insert
语法
redis-cli –pipe命令通常用于向redis中导入数据,表现形式为从管道接收指定格式数据,写批量入到redis中
# 注意每个语句后以\r\n结尾
echo -en '*3\r\n$3\r\nSET\r\n$4\r\nname\r\n$6\r\nzlikun\r\n' | redis-cli --pipe
格式说明
* *3表示语句有3个参数(包含SET命令本身)
* $3表示接下来的参数字符数,如:SET长度为3
* SET第一个参数(要执行的命令)
* $4表示接下来的参数字符数
* name是第二个参数(缓存键) * $6表示接下来的参数字符数
* zlikun是第三个参数(缓存值)
* ...
案例
将MySQL中数据直接导入到Redis中
mysql -h 127.0.0.1 -uroot -p123456 --skip-column-names --raw < export.data.sql | redis-cli --pipe
或分成两步来做
mysql -h 127.0.0.1 -uroot -p123456 --skip-column-names --raw < export.data.sql > export.data.log
cat export.data.log | redis-cli --pipe
export.data.sql是一个用于生成指定格式数据的查询SQL文件,如:
-- 生成用户ID:用户名数据,每条记录以\r结尾,否则报错(测试后得出的结论)
SELECT CONCAT(
'*3\r\n'
,'$',LENGTH(r_cmd) ,'\r\n'
,r_cmd ,'\r\n'
,'$',LENGTH(r_key) , '\r\n'
,r_key ,'\r\n'
,'$',LENGTH(r_val) ,'\r\n'
,r_val ,'\r'
) AS 'data'
FROM (
SELECT 'SET' AS r_cmd ,CONCAT('user:' ,ID) AS r_key ,NAME AS r_val FROM TBL_USER LIMIT 100
) r_tmp ;
方法2: 逐条执行命令
目的: 导入 user3 , password3 到一个hashset。
week05-c.txt文件 的内容是:
hset user3 password pwd3
使用命令 cat week05-c.txt | ./redis-cli --pipe 导入