测试表结构:

CREATE TABLE `order` (

`orderid` varchar(38) DEFAULT NULL,

`ordertime` datetime DEFAULT NULL,

`ordermoney` decimal(20,0) DEFAULT NULL,

`orderstatus` char(1) DEFAULT NULL,

`version` int(11) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8

1dd2c68343b6ec590d2c9047eb2e09fb.png

第一行的 *12\r\n  :  *表示数组,12表示数组元素个数*(可以看下面的SQL查询语句标红的字段有12个,所以为12), \r\n是规定分隔符

第二行的 '$',LENGTH(redis_cmd),'\r\n',redis_cmd,'\r\n',

: $表示长字符串,LENGTH(redis_cmd)表示字符串长度,

redis_cmd 字符串变量,

注意:\r\n还是规定字符串(window的redis是\n)

SELECT CONCAT(

'*12\n',

'$', LENGTH(redis_cmd), '\n', redis_cmd, '\n',

'$', LENGTH(redis_key), '\n', redis_key, '\n',

'$', LENGTH(hkey1),'\n',hkey1,'\n','$',LENGTH(hval1),'\n',hval1,'\n',

'$', LENGTH(hkey2),'\n',hkey2,'\n','$',LENGTH(hval2),'\n',hval2,'\n',

'$', LENGTH(hkey3),'\n',hkey3,'\n','$',LENGTH(hval3),'\n',hval3,'\n',

'$', LENGTH(hkey4),'\n',hkey4,'\n','$',LENGTH(hval4),'\n',hval4,'\n',

'$', LENGTH(hkey5),'\n',hkey5,'\n','$',LENGTH(hval5),'\n',hval5,''

)

FROM (

SELECT

'HMSET' AS redis_cmd,

CONCAT('order:',orderid) AS redis_key,

'ordertime' AS hkey1, ordertime AS hval1,

'ordermoney' AS hkey2, ordermoney AS hval2,

'orderstatus' AS hkey3, orderstatus AS hval3,

'version' AS hkey4, `version` AS hval4,

'orderid' AS hkey5, `orderid` AS hval5

FROM `order`

) AS t

将以上查询SQL查询语句在LINUX上存储order.sql文件

执行指令:

mysql -uroot -p123 ytwo --default-character-set=utf8 --skip-column-names --raw < order.sql | redis-cli --pipe -h 127.0.0.1 -a 123

20190522222856_91905.png

-uroot -p123 ytwo 代表连接root用户 密码为123数据库为ytwo,并登录数据库

--raw < order.sql 表示将order.sql的sql语句内容粘贴到mysql里执行(以上指令代表已登录MYSQL)

redis-cli --pipe      表示使用redis pipe管道把数据导入到redis中

-h 127.0.0.1 -a 123 -h服务器地址 -a 密码

--default-character-set=utf8 使用utf8作为默认编码

--raw 使mysql不转换字段值中的换行符

--skip-column-names 使mysql输出的每行中不包含列名

| 管道符号(意思是将该符号左边的运算结果提交给右边的命令处理,这里是先通过MySQL到处数据,然后用redis-cli导入到Redis)

8f5aa60bfed03d6fbb342cff81fbb650.png

查看

8d6761140b6692440f0dccd1858e0a4a.png

936d3256c9316fbbadc939ce3263e600.png

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐