當前位置:
首頁 > 知識 > redis-cli pipe方式導入mysql sql查詢導出redisProtocol格式數據

redis-cli pipe方式導入mysql sql查詢導出redisProtocol格式數據

mysql的數據導入到redis中可以通過編寫腳本來實現,先連接db然後將查詢出的數據批量寫入到redis中,但redis pipe的方式更加簡便高效。

分享下最代碼的相關腳本代碼片段:

linux下直接執行

1

mysql -uroot -p111111 javaniu --skip-column-names --default-character-set=utf8 --raw < eve_uid_tp_scid_st_t.tpl| redis-cli -p 6379 --pipe

windows下

1

mysql -uroot -p111111 javaniu --skip-column-names --default-character-set=utf8 --raw < c:/eve_uid_tp_scid_st_t.tpl | redis-cli -p 6379 --pipe

linux下導出文件分隔符是
,而windows下是

linux下腳本

01

SELECT CONCAT(

02

"*4
",

03

"$", LENGTH(redis_cmd), "
",

04

redis_cmd, "
",

05

"$", LENGTH(eve_st), "
",

06

eve_st, "
",

07

"$", LENGTH(score), "
",

08

score, "
",

09

"$", LENGTH(member), "
",

10

member, "
"

11

)

12

FROM (

13

SELECT

14

"zadd" as redis_cmd,

15

concat("eve_",status) as eve_st,

16

id as member,

17

unix_timestamp(create_time) AS score

18

FROM event where status=0

19

) AS eve

windows下腳本

01

SELECT CONCAT(

02

"*4
",

03

"$", LENGTH(redis_cmd), "
",

04

redis_cmd, "
",

05

"$", LENGTH(eve_st), "
",

06

eve_st, "
",

07

"$", LENGTH(score), "
",

08

score, "
",

09

"$", LENGTH(member), "
",

10

member

11

)

12

FROM (

13

SELECT

14

"zadd" as redis_cmd,

15

concat("eve_",status) as eve_st,

16

id as member,

17

unix_timestamp(create_time) AS score

18

FROM event where status=0

19

) AS eve

redis Protocol格式說明如下:

01

#表示有4個參數

02

*4

03

#表示命令長度

04

$LENGTH(redis_cmd)

05

#命令

06

redis_cmd

07

#key長度

08

$LENGTH(eve_st)

09

#key值

10

eve_st

11

#value長度

12

$LENGTH(score)

13

#value值

14

score

redis-cli pipe方式導入mysql sql查詢導出redisProtocol格式數據

執行結果如下圖:

redis-cli pipe方式導入mysql sql查詢導出redisProtocol格式數據

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

OpenCV VideoCapture.get()參數詳解
win32截屏並rgb24轉yuv420

TAG:程序員小新人學習 |