Windows下将数据从mysql中导入redis中

       最近因为需要把mysql中的数据导入到redis中,所以就在网上查看了许多博客,但是大部分博客都是在linux中导入数据的,所以在Windows下或多或少都会出现一些问题,因此打算自己写一个博客,将别人的内容和自己遇到的问题都整合进去,希望可以给大家提供有效的帮助。

一、启动 redis:

本人redis版本为Redis-x64-3.2.100,其下载地址:https://github.com/MSOpenTech/redis/releases

下载 Redis-x64-xxx.zip压缩包到D 盘,解压后,将文件夹重新命名为 redis

打开一个 cmd 窗口 使用cd命令切换目录到 D:\redis 运行 redis-server.exe redis.windows.conf 。

输入之后,会显示如下界面:

二、通过管道传输,将mysql中的数据转入redis

编写SQL脚本,将mysql中的数据转化成为Redis-cli可以识别的格式:

 mysql数据库中的表格结构(部分)如下:表名为user


在网上查找相关博客(https://blog.csdn.net/smilingc/article/details/53259273),写出如下代码:

SELECT CONCAT(    
  "*128\r\n",    
  '$', LENGTH(redis_cmd), '\r\n', redis_cmd, '\r\n',    
  '$', LENGTH(redis_key), '\r\n', redis_key, '\r\n',  
  '$', LENGTH(hkey1), '\r\n',  hkey1, '\r\n','$', LENGTH(hval1), '\r\n',  hval1, '\r\n'  
  '$', LENGTH(hkey2), '\r\n',  hkey2, '\r\n','$', LENGTH(hval2), '\r\n',  hval2, '\r\n'    
  '$', LENGTH(hkey3), '\r\n',  hkey3, '\r\n','$', LENGTH(hval3), '\r\n',  hval3, '\r\n'     
  '$', LENGTH(hkey4), '\r\n',  hkey4, '\r\n','$', LENGTH(hval4), '\r\n',  hval4, '\r\n'  
  '$', LENGTH(hkey5), '\r\n',  hkey5, '\r\n','$', LENGTH(hval5), '\r\n',  hval5, '\r\n'    
  '$', LENGTH(hkey6), '\r\n',  hkey6, '\r\n','$', LENGTH(hval6), '\r\n',  hval6, '\r\n' 
  '$', LENGTH(hkey7), '\r\n',  hkey7, '\r\n','$', LENGTH(hval7), '\r\n',  hval7, '\r\n'  
  '$', LENGTH(hkey8), '\r\n',  hkey8, '\r\n','$', LENGTH(hval8), '\r\n',  hval8, '\r\n'    
  '$', LENGTH(hkey9), '\r\n',  hkey9, '\r\n','$', LENGTH(hval9), '\r\n',  hval9, '\r\n' 
  '$', LENGTH(hkey10), '\r\n',  hkey10, '\r\n','$', LENGTH(hval10), '\r\n',  hval10, '\r\n'   
  '$', LENGTH(hkey11), '\r\n',  hkey11, '\r\n','$', LENGTH(hval11), '\r\n',  hval11, '\r\n'  
  '$', LENGTH(hkey12), '\r\n',  hkey12, '\r\n','$', LENGTH(hval12), '\r\n',  hval12, '\r\n'    
  '$', LENGTH(hkey13), '\r\n',  hkey13, '\r\n','$', LENGTH(hval13), '\r\n',  hval13, '\r\n'     
  '$', LENGTH(hkey14), '\r\n',  hkey14, '\r\n','$', LENGTH(hval14), '\r\n',  hval14, '\r\n'  
  '$', LENGTH(hkey15), '\r\n',  hkey15, '\r\n','$', LENGTH(hval15), '\r\n',  hval15, '\r\n'    
  '$', LENGTH(hkey16), '\r\n',  hkey16, '\r\n','$', LENGTH(hval16), '\r\n',  hval16, '\r\n' 
  '$', LENGTH(hkey17), '\r\n',  hkey17, '\r\n','$', LENGTH(hval17), '\r\n',  hval17, '\r\n'  
  '$', LENGTH(hkey18), '\r\n',  hkey18, '\r\n','$', LENGTH(hval18), '\r\n',  hval18, '\r\n'    
  '$', LENGTH(hkey19), '\r\n',  hkey19, '\r\n','$', LENGTH(hval19), '\r\n',  hval19, '\r\n' 
  '$', LENGTH(hkey20), '\r\n',  hkey20, '\r\n','$', LENGTH(hval20), '\r\n',  hval20, '\r\n'
  '$', LENGTH(hkey21), '\r\n',  hkey21, '\r\n','$', LENGTH(hval21), '\r\n',  hval21, '\r\n'  
  '$', LENGTH(hkey22), '\r\n',  hkey22, '\r\n','$', LENGTH(hval22), '\r\n',  hval22, '\r\n'    
  '$', LENGTH(hkey23), '\r\n',  hkey23, '\r\n','$', LENGTH(hval23), '\r\n',  hval23, '\r\n'     
  '$', LENGTH(hkey24), '\r\n',  hkey24, '\r\n','$', LENGTH(hval24), '\r\n',  hval24, '\r\n'  
  '$', LENGTH(hkey25), '\r\n',  hkey25, '\r\n','$', LENGTH(hval25), '\r\n',  hval25, '\r\n'    
  '$', LENGTH(hkey26), '\r\n',  hkey26, '\r\n','$', LENGTH(hval26), '\r\n',  hval26, '\r\n' 
  '$', LENGTH(hkey27), '\r\n',  hkey27, '\r\n','$', LENGTH(hval27), '\r\n',  hval27, '\r\n'  
  '$', LENGTH(hkey28), '\r\n',  hkey28, '\r\n','$', LENGTH(hval28), '\r\n',  hval28, '\r\n'    
  '$', LENGTH(hkey29), '\r\n',  hkey29, '\r\n','$', LENGTH(hval29), '\r\n',  hval29, '\r\n' 
  '$', LENGTH(hkey30), '\r\n',  hkey30, '\r\n','$', LENGTH(hval30), '\r\n',  hval30, '\r\n'
  '$', LENGTH(hkey31), '\r\n',  hkey31, '\r\n','$', LENGTH(hval31), '\r\n',  hval31, '\r\n'  
  '$', LENGTH(hkey32), '\r\n',  hkey32, '\r\n','$', LENGTH(hval32), '\r\n',  hval32, '\r\n'    
  '$', LENGTH(hkey33), '\r\n',  hkey33, '\r\n','$', LENGTH(hval33), '\r\n',  hval33, '\r\n'     
  '$', LENGTH(hkey34), '\r\n',  hkey34, '\r\n','$', LENGTH(hval34), '\r\n',  hval34, '\r\n'  
  '$', LENGTH(hkey35), '\r\n',  hkey35, '\r\n','$', LENGTH(hval35), '\r\n',  hval35, '\r\n'    
  '$', LENGTH(hkey36), '\r\n',  hkey36, '\r\n','$', LENGTH(hval36), '\r\n',  hval36, '\r\n' 
  '$', LENGTH(hkey37), '\r\n',  hkey37, '\r\n','$', LENGTH(hval37), '\r\n',  hval37, '\r\n'  
  '$', LENGTH(hkey38), '\r\n',  hkey38, '\r\n','$', LENGTH(hval38), '\r\n',  hval38, '\r\n'    
  '$', LENGTH(hkey39), '\r\n',  hkey39, '\r\n','$', LENGTH(hval39), '\r\n',  hval39, '\r\n' 
  '$', LENGTH(hkey40), '\r\n',  hkey40, '\r\n','$', LENGTH(hval40), '\r\n',  hval40, '\r\n'
  '$', LENGTH(hkey41), '\r\n',  hkey41, '\r\n','$', LENGTH(hval41), '\r\n',  hval41, '\r\n'  
  '$', LENGTH(hkey42), '\r\n',  hkey42, '\r\n','$', LENGTH(hval42), '\r\n',  hval42, '\r\n'    
  '$', LENGTH(hkey43), '\r\n',  hkey43, '\r\n','$', LENGTH(hval43), '\r\n',  hval43, '\r\n'     
  '$', LENGTH(hkey44), '\r\n',  hkey44, '\r\n','$', LENGTH(hval44), '\r\n',  hval44, '\r\n'  
  '$', LENGTH(hkey45), '\r\n',  hkey45, '\r\n','$', LENGTH(hval45), '\r\n',  hval45, '\r\n'    
  '$', LENGTH(hkey46), '\r\n',  hkey46, '\r\n','$', LENGTH(hval46), '\r\n',  hval46, '\r\n' 
  '$', LENGTH(hkey47), '\r\n',  hkey47, '\r\n','$', LENGTH(hval47), '\r\n',  hval47, '\r\n'  
  '$', LENGTH(hkey48), '\r\n',  hkey48, '\r\n','$', LENGTH(hval48), '\r\n',  hval48, '\r\n'    
  '$', LENGTH(hkey49), '\r\n',  hkey49, '\r\n','$', LENGTH(hval49), '\r\n',  hval49, '\r\n' 
  '$', LENGTH(hkey50), '\r\n',  hkey50, '\r\n','$', LENGTH(hval50), '\r\n',  hval50, '\r\n'
  '$', LENGTH(hkey51), '\r\n',  hkey51, '\r\n','$', LENGTH(hval51), '\r\n',  hval51, '\r\n'  
  '$', LENGTH(hkey52), '\r\n',  hkey52, '\r\n','$', LENGTH(hval52), '\r\n',  hval52, '\r\n'    
  '$', LENGTH(hkey53), '\r\n',  hkey53, '\r\n','$', LENGTH(hval53), '\r\n',  hval53, '\r\n'     
  '$', LENGTH(hkey54), '\r\n',  hkey54, '\r\n','$', LENGTH(hval54), '\r\n',  hval54, '\r\n'  
  '$', LENGTH(hkey55), '\r\n',  hkey55, '\r\n','$', LENGTH(hval55), '\r\n',  hval55, '\r\n'    
  '$', LENGTH(hkey56), '\r\n',  hkey56, '\r\n','$', LENGTH(hval56), '\r\n',  hval56, '\r\n' 
  '$', LENGTH(hkey57), '\r\n',  hkey57, '\r\n','$', LENGTH(hval57), '\r\n',  hval57, '\r\n'  
  '$', LENGTH(hkey58), '\r\n',  hkey58, '\r\n','$', LENGTH(hval58), '\r\n',  hval58, '\r\n'    
  '$', LENGTH(hkey59), '\r\n',  hkey59, '\r\n','$', LENGTH(hval59), '\r\n',  hval59, '\r\n' 
  '$', LENGTH(hkey60), '\r\n',  hkey60, '\r\n','$', LENGTH(hval60), '\r\n',  hval60, '\r\n' 
  '$', LENGTH(hkey61), '\r\n',  hkey61, '\r\n','$', LENGTH(hval61), '\r\n',  hval61, '\r\n'  
  '$', LENGTH(hkey62), '\r\n',  hkey62, '\r\n','$', LENGTH(hval62), '\r\n',  hval62, '\r\n'    
  '$', LENGTH(hkey63), '\r\n',  hkey63, '\r\n','$', LENGTH(hval63), '\r\n',  hval63, '\r' 
   
)    
FROM (    
  SELECT    
'HMSET' as redis_cmd, CONCAT('id:' ,id) AS redis_key,    
'summoney' AS hkey1, summoney AS hval1,  
'summoney1' AS hkey2, summoney1 AS hval2,  
'summoney0' AS hkey3, summoney0 AS hval3,  
'count' AS hkey4, count AS hval4,  
'count1' AS hkey5, count1 AS hval5,  
'count0' AS hkey6, count0 AS hval6, 
'meanmoney' AS hkey7, meanmoney AS hval7,  
'meanmoney1' AS hkey8, meanmoney1 AS hval8,  
'meanmoney0' AS hkey9, meanmoney0 AS hval9,   
'stdmoney' AS hkey10, stdmoney AS hval10,  
'stdmoney1' AS hkey11, stdmoney1 AS hval11,  
'stdmoney0' AS hkey12, stdmoney0 AS hval12,   
'ip11' AS hkey13, ip11 AS hval13,  
'ip10' AS hkey14, ip10 AS hval14,  
'ip01' AS hkey15, ip01 AS hval15, 
'ip00' AS hkey16, ip00 AS hval16,  
'weekday1' AS hkey17, weekday1 AS hval17,  
'weekday0' AS hkey18, weekday0 AS hval18,   
'weekend1' AS hkey19, weekend1 AS hval19,
'weekend0' AS hkey20, weekend0 AS hval20,  
'festival1' AS hkey21, festival1 AS hval21,  
'festival0' AS hkey22, festival0 AS hval22,  
'price1' AS hkey23, price1 AS hval23,  
'price2' AS hkey24, price2 AS hval24,  
'price3' AS hkey25, price3 AS hval25, 
'price4' AS hkey26, price4 AS hval26,  
'price5' AS hkey27, price5 AS hval27,  
'range11' AS hkey28, range11 AS hval28,   
'range21' AS hkey29, range21 AS hval29,
'range31' AS hkey30, range31 AS hval30,  
'range41' AS hkey31, range41 AS hval31,  
'range10' AS hkey32, range10 AS hval32,  
'range20' AS hkey33, range20 AS hval33,  
'range30' AS hkey34, range30 AS hval34,  
'range40' AS hkey35, range40 AS hval35, 
'timeinterval1' AS hkey36, timeinterval1 AS hval36,  
'timeinterval2' AS hkey37, timeinterval2 AS hval37,  
'timeinterval3' AS hkey38, timeinterval3 AS hval38,   
'timeinterval4' AS hkey39, timeinterval4 AS hval39,
'interval11' AS hkey40, interval11 AS hval40,  
'interval21' AS hkey41, interval21 AS hval41,  
'interval31' AS hkey42, interval31 AS hval42,  
'interval41' AS hkey43, interval41 AS hval43,  
'interval10' AS hkey44, interval10 AS hval44,  
'interval20' AS hkey45, interval20 AS hval45, 
'interval30' AS hkey46, interval30 AS hval46,  
'interval40' AS hkey47, interval40 AS hval47,  
'time11' AS hkey48, time11 AS hval48,  
'time21' AS hkey49, time21 AS hval49,
'time31' AS hkey50, time31 AS hval50,  
'time41' AS hkey51, time41 AS hval51,  
'time51' AS hkey52, time51 AS hval52,  
'time61' AS hkey53, time61 AS hval53,  
'time71' AS hkey54, time71 AS hval54,  
'time81' AS hkey55, time81 AS hval55, 
'time10' AS hkey56, time10 AS hval56,  
'time20' AS hkey57, time20 AS hval57,  
'time30' AS hkey58, time30 AS hval58,   
'time40' AS hkey59, time40 AS hval59,
'time50' AS hkey60, time50 AS hval60,  
'time60' AS hkey61, time60 AS hval61,  
'time70' AS hkey62, time70 AS hval62,  
'time80' AS hkey63, time80 AS hval63
  FROM user    
) AS t   

将其保存在mysql-to-redis.sql文件中,并且将其放在D盘redis文件中,打开新的控制台,进入D:/redis 下再运行以下命令就可以完成导入:

mysql -h 127.0.0.1 -uroot -proot clgclg --skip-column-names --raw < mysql-to-redis.sql | redis-cli.exe --pipe

但是在运行过程中出现如下错误,在网上查找半天,发现好多人都在问这个问题:


然后无意中发现一篇博客详细介绍了这个问题,对我有很大的帮助:

因为RESP协议中的分隔符为在Linux下是\r\n,而在Windows下则为\n,所以原代码做以下修改:

SELECT CONCAT(    
  "*128\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, '\n'    
  '$', LENGTH(hkey6), '\n',  hkey6, '\n','$', LENGTH(hval6), '\n',  hval6, '\n' 
  '$', LENGTH(hkey7), '\n',  hkey7, '\n','$', LENGTH(hval7), '\n',  hval7, '\n'  
  '$', LENGTH(hkey8), '\n',  hkey8, '\n','$', LENGTH(hval8), '\n',  hval8, '\n'    
  '$', LENGTH(hkey9), '\n',  hkey9, '\n','$', LENGTH(hval9), '\n',  hval9, '\n' 
  '$', LENGTH(hkey10), '\n',  hkey10, '\n','$', LENGTH(hval10), '\n',  hval10, '\n'   
  '$', LENGTH(hkey11), '\n',  hkey11, '\n','$', LENGTH(hval11), '\n',  hval11, '\n'  
  '$', LENGTH(hkey12), '\n',  hkey12, '\n','$', LENGTH(hval12), '\n',  hval12, '\n'    
  '$', LENGTH(hkey13), '\n',  hkey13, '\n','$', LENGTH(hval13), '\n',  hval13, '\n'     
  '$', LENGTH(hkey14), '\n',  hkey14, '\n','$', LENGTH(hval14), '\n',  hval14, '\n'  
  '$', LENGTH(hkey15), '\n',  hkey15, '\n','$', LENGTH(hval15), '\n',  hval15, '\n'    
  '$', LENGTH(hkey16), '\n',  hkey16, '\n','$', LENGTH(hval16), '\n',  hval16, '\n' 
  '$', LENGTH(hkey17), '\n',  hkey17, '\n','$', LENGTH(hval17), '\n',  hval17, '\n'  
  '$', LENGTH(hkey18), '\n',  hkey18, '\n','$', LENGTH(hval18), '\n',  hval18, '\n'    
  '$', LENGTH(hkey19), '\n',  hkey19, '\n','$', LENGTH(hval19), '\n',  hval19, '\n' 
  '$', LENGTH(hkey20), '\n',  hkey20, '\n','$', LENGTH(hval20), '\n',  hval20, '\n'
  '$', LENGTH(hkey21), '\n',  hkey21, '\n','$', LENGTH(hval21), '\n',  hval21, '\n'  
  '$', LENGTH(hkey22), '\n',  hkey22, '\n','$', LENGTH(hval22), '\n',  hval22, '\n'    
  '$', LENGTH(hkey23), '\n',  hkey23, '\n','$', LENGTH(hval23), '\n',  hval23, '\n'     
  '$', LENGTH(hkey24), '\n',  hkey24, '\n','$', LENGTH(hval24), '\n',  hval24, '\n'  
  '$', LENGTH(hkey25), '\n',  hkey25, '\n','$', LENGTH(hval25), '\n',  hval25, '\n'    
  '$', LENGTH(hkey26), '\n',  hkey26, '\n','$', LENGTH(hval26), '\n',  hval26, '\n' 
  '$', LENGTH(hkey27), '\n',  hkey27, '\n','$', LENGTH(hval27), '\n',  hval27, '\n'  
  '$', LENGTH(hkey28), '\n',  hkey28, '\n','$', LENGTH(hval28), '\n',  hval28, '\n'    
  '$', LENGTH(hkey29), '\n',  hkey29, '\n','$', LENGTH(hval29), '\n',  hval29, '\n' 
  '$', LENGTH(hkey30), '\n',  hkey30, '\n','$', LENGTH(hval30), '\n',  hval30, '\n'
  '$', LENGTH(hkey31), '\n',  hkey31, '\n','$', LENGTH(hval31), '\n',  hval31, '\n'  
  '$', LENGTH(hkey32), '\n',  hkey32, '\n','$', LENGTH(hval32), '\n',  hval32, '\n'    
  '$', LENGTH(hkey33), '\n',  hkey33, '\n','$', LENGTH(hval33), '\n',  hval33, '\n'     
  '$', LENGTH(hkey34), '\n',  hkey34, '\n','$', LENGTH(hval34), '\n',  hval34, '\n'  
  '$', LENGTH(hkey35), '\n',  hkey35, '\n','$', LENGTH(hval35), '\n',  hval35, '\n'    
  '$', LENGTH(hkey36), '\n',  hkey36, '\n','$', LENGTH(hval36), '\n',  hval36, '\n' 
  '$', LENGTH(hkey37), '\n',  hkey37, '\n','$', LENGTH(hval37), '\n',  hval37, '\n'  
  '$', LENGTH(hkey38), '\n',  hkey38, '\n','$', LENGTH(hval38), '\n',  hval38, '\n'    
  '$', LENGTH(hkey39), '\n',  hkey39, '\n','$', LENGTH(hval39), '\n',  hval39, '\n' 
  '$', LENGTH(hkey40), '\n',  hkey40, '\n','$', LENGTH(hval40), '\n',  hval40, '\n'
  '$', LENGTH(hkey41), '\n',  hkey41, '\n','$', LENGTH(hval41), '\n',  hval41, '\n'  
  '$', LENGTH(hkey42), '\n',  hkey42, '\n','$', LENGTH(hval42), '\n',  hval42, '\n'    
  '$', LENGTH(hkey43), '\n',  hkey43, '\n','$', LENGTH(hval43), '\n',  hval43, '\n'     
  '$', LENGTH(hkey44), '\n',  hkey44, '\n','$', LENGTH(hval44), '\n',  hval44, '\n'  
  '$', LENGTH(hkey45), '\n',  hkey45, '\n','$', LENGTH(hval45), '\n',  hval45, '\n'    
  '$', LENGTH(hkey46), '\n',  hkey46, '\n','$', LENGTH(hval46), '\n',  hval46, '\n' 
  '$', LENGTH(hkey47), '\n',  hkey47, '\n','$', LENGTH(hval47), '\n',  hval47, '\n'  
  '$', LENGTH(hkey48), '\n',  hkey48, '\n','$', LENGTH(hval48), '\n',  hval48, '\n'    
  '$', LENGTH(hkey49), '\n',  hkey49, '\n','$', LENGTH(hval49), '\n',  hval49, '\n' 
  '$', LENGTH(hkey50), '\n',  hkey50, '\n','$', LENGTH(hval50), '\n',  hval50, '\n'
  '$', LENGTH(hkey51), '\n',  hkey51, '\n','$', LENGTH(hval51), '\n',  hval51, '\n'  
  '$', LENGTH(hkey52), '\n',  hkey52, '\n','$', LENGTH(hval52), '\n',  hval52, '\n'    
  '$', LENGTH(hkey53), '\n',  hkey53, '\n','$', LENGTH(hval53), '\n',  hval53, '\n'     
  '$', LENGTH(hkey54), '\n',  hkey54, '\n','$', LENGTH(hval54), '\n',  hval54, '\n'  
  '$', LENGTH(hkey55), '\n',  hkey55, '\n','$', LENGTH(hval55), '\n',  hval55, '\n'    
  '$', LENGTH(hkey56), '\n',  hkey56, '\n','$', LENGTH(hval56), '\n',  hval56, '\n' 
  '$', LENGTH(hkey57), '\n',  hkey57, '\n','$', LENGTH(hval57), '\n',  hval57, '\n'  
  '$', LENGTH(hkey58), '\n',  hkey58, '\n','$', LENGTH(hval58), '\n',  hval58, '\n'    
  '$', LENGTH(hkey59), '\n',  hkey59, '\n','$', LENGTH(hval59), '\n',  hval59, '\n' 
  '$', LENGTH(hkey60), '\n',  hkey60, '\n','$', LENGTH(hval60), '\n',  hval60, '\n' 
  '$', LENGTH(hkey61), '\n',  hkey61, '\n','$', LENGTH(hval61), '\n',  hval61, '\n'  
  '$', LENGTH(hkey62), '\n',  hkey62, '\n','$', LENGTH(hval62), '\n',  hval62, '\n'    
  '$', LENGTH(hkey63), '\n',  hkey63, '\n','$', LENGTH(hval63), '\n',  hval63
   
)    
FROM (    
  SELECT    
'HMSET' as redis_cmd, CONCAT('id:' ,id) AS redis_key,    
'summoney' AS hkey1, summoney AS hval1,  
'summoney1' AS hkey2, summoney1 AS hval2,  
'summoney0' AS hkey3, summoney0 AS hval3,  
'count' AS hkey4, count AS hval4,  
'count1' AS hkey5, count1 AS hval5,  
'count0' AS hkey6, count0 AS hval6, 
'meanmoney' AS hkey7, meanmoney AS hval7,  
'meanmoney1' AS hkey8, meanmoney1 AS hval8,  
'meanmoney0' AS hkey9, meanmoney0 AS hval9,   
'stdmoney' AS hkey10, stdmoney AS hval10,  
'stdmoney1' AS hkey11, stdmoney1 AS hval11,  
'stdmoney0' AS hkey12, stdmoney0 AS hval12,   
'ip11' AS hkey13, ip11 AS hval13,  
'ip10' AS hkey14, ip10 AS hval14,  
'ip01' AS hkey15, ip01 AS hval15, 
'ip00' AS hkey16, ip00 AS hval16,  
'weekday1' AS hkey17, weekday1 AS hval17,  
'weekday0' AS hkey18, weekday0 AS hval18,   
'weekend1' AS hkey19, weekend1 AS hval19,
'weekend0' AS hkey20, weekend0 AS hval20,  
'festival1' AS hkey21, festival1 AS hval21,  
'festival0' AS hkey22, festival0 AS hval22,  
'price1' AS hkey23, price1 AS hval23,  
'price2' AS hkey24, price2 AS hval24,  
'price3' AS hkey25, price3 AS hval25, 
'price4' AS hkey26, price4 AS hval26,  
'price5' AS hkey27, price5 AS hval27,  
'range11' AS hkey28, range11 AS hval28,   
'range21' AS hkey29, range21 AS hval29,
'range31' AS hkey30, range31 AS hval30,  
'range41' AS hkey31, range41 AS hval31,  
'range10' AS hkey32, range10 AS hval32,  
'range20' AS hkey33, range20 AS hval33,  
'range30' AS hkey34, range30 AS hval34,  
'range40' AS hkey35, range40 AS hval35, 
'timeinterval1' AS hkey36, timeinterval1 AS hval36,  
'timeinterval2' AS hkey37, timeinterval2 AS hval37,  
'timeinterval3' AS hkey38, timeinterval3 AS hval38,   
'timeinterval4' AS hkey39, timeinterval4 AS hval39,
'interval11' AS hkey40, interval11 AS hval40,  
'interval21' AS hkey41, interval21 AS hval41,  
'interval31' AS hkey42, interval31 AS hval42,  
'interval41' AS hkey43, interval41 AS hval43,  
'interval10' AS hkey44, interval10 AS hval44,  
'interval20' AS hkey45, interval20 AS hval45, 
'interval30' AS hkey46, interval30 AS hval46,  
'interval40' AS hkey47, interval40 AS hval47,  
'time11' AS hkey48, time11 AS hval48,  
'time21' AS hkey49, time21 AS hval49,
'time31' AS hkey50, time31 AS hval50,  
'time41' AS hkey51, time41 AS hval51,  
'time51' AS hkey52, time51 AS hval52,  
'time61' AS hkey53, time61 AS hval53,  
'time71' AS hkey54, time71 AS hval54,  
'time81' AS hkey55, time81 AS hval55, 
'time10' AS hkey56, time10 AS hval56,  
'time20' AS hkey57, time20 AS hval57,  
'time30' AS hkey58, time30 AS hval58,   
'time40' AS hkey59, time40 AS hval59,
'time50' AS hkey60, time50 AS hval60,  
'time60' AS hkey61, time60 AS hval61,  
'time70' AS hkey62, time70 AS hval62,  
'time80' AS hkey63, time80 AS hval63
  FROM user    

) AS t   

之后再运行命令就成功将数据导入redis中了:


三、部分命令解释:

1、第一行的 *128\r\n  :  *表示数组,128表示数组元素个数, \r\n是规定分隔符;

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

   $表示长字符串,LENGTH(redis_cmd)表示字符串长度,redis_cmd字符串变量,\r\n还是规定字符串;

3、根据RESP协议,长字符串(bulk Strings)的格式要求是$字符长度\r\n字符串\r\n的,但是从上面命令的最后一行可以看到,在Linux下,最后变成了\r,而在Windows下就直接什么都没有了。

4、每一行最后'\r\n'后面这个逗号,可以可无,如果没有逗号,一定要空一格空格,否则出错。

5、将第三步的命令保存到文件中,这里是mysql-to-redis.sql

  mysql -uroot -ppassword -Ddbname --default-character-set=utf8 --skip-column-names --raw < person.sql | redis-cli --pipe

  或:

   mysql -uroot -ppassword dbname --default-character-set=utf8 --skip-column-names --raw < person.sql | redis-cli --pipe  

      其中:

        -u 是数据库用户名       -p 是数据库密码         -D 指定数据库,也可以直接输入数据库名字  

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

   --raw 使mysql不转换字段值中的换行符
        --skip-column-names 使mysql输出的每行中不包含列名

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

     redis-cli 是调用Redis的客户端命令         --pipe 使用管道传输

四、异常处理

 ERR Protocol error: expected '$', got ' '

  如果执行命令时,出现 ERR Protocol error: expected '$', got ' ' , 先判断你的操作系统,

        如果是在Windows下使用了\r\n作为分隔符就会如此,应改成\n。

ERR Protocol error: expected '$', got '1' 就是got后面的内容不为空 ' '

        看起来与5.1的错误提示极为相似,但这个一般是数据库中有特殊符号所导致的的,

  所以在命令中加上 --default-character-set=utf8 即可


参考:http://www.cnblogs.com/tommy-huang/p/4703514.html

        https://blog.csdn.net/smilingc/article/details/53259273




猜你喜欢

转载自blog.csdn.net/songzhiren5560/article/details/80291462