mysql資料向Redis快速匯入

2021-07-01 21:13:30 字數 2050 閱讀 8157

redis協議

*引數個數

$第乙個引數長度

第乙個引數

$第乙個引數長度

第二個引數

... ...

編寫sql語句,把mysql資料組合成redis協議資料流

select concat(

"*16\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'

)from (

select

'hmset' as redis_cmd, concat(resource_id,'_hash') as redis_key,

'name' as hkey1,resource_title as hval1,

'type' as hkey2,resource_type_name as hval2,

'exe' as hkey3,resource_format as hval3,

'page' as hkey4,resource_page as hval4,

'size' as hkey5,resource_size as hval5,

'time' as hkey6,create_time as hval6,

'num' as hkey7,resource_downcount as hval7

from t_resource_info

) as t

拼出來的串

*16\r\n$5\r\nhmset\r\n$9\r\nnba231058\r\n$4\r\nname\r\n$51\r\n綠色食品的定義及綠色食品標誌的使用\r\n$4\r\ntype\r\n$6\r\n文字\r\n$3\r\nexe\r\n$3\r\ndoc\r\n$4\r\npage\r\n$1\r\n1\r\n$4\r\nsize\r\n$6\r\n79.5kb\r\n$4\r\ntime\r\n$19\r\n2013-05-31

08:56:59\r\n$3\r\nnum\r\n$2\r\n18\r\n

執行下面的語句

mysql -h 10.10.3.218 -u root -p 123456 -d test_db --skip-column-names --raw –raw: 使mysql不轉換字段值中的換行符。

–skip-column-names: 使mysql輸出的每行中不包含列名。

單獨執行

echo -en '

*3\r\n$3\r\nset\r\n$3\r\nkey\r\n$5\r\nvalue\r\n

' | redis-cli --pipe

經測試200w條資料,2分鐘以內就可以完成。

mysql資料向Redis快速匯入

redis協議 引數個數 第乙個引數長度 第乙個引數 第乙個引數長度 第二個引數 編寫sql語句,把mysql資料組合成redis協議資料流 select concat 16 r n length redis cmd r n redis cmd,r n length redis key r n re...

mysql資料向Redis快速匯入

redis協議 引數個數 第乙個引數長度 第乙個引數 第乙個引數長度 第二個引數 編寫sql語句,把mysql資料組合成redis協議資料流 select concat 16 r n length redis cmd r n redis cmd,r n length redis key r n re...

mysql資料向Redis快速匯入

redis協議 引數個數 第乙個引數長度 第乙個引數 第乙個引數長度 第二個引數 編寫sql語句,把mysql資料組合成redis協議資料流 select concat 16 r n length redis cmd r n redis cmd,r n length redis key r n re...