1. 程式人生 > >Redis利用管道批量插入資料

Redis利用管道批量插入資料

首先需要構造資料的基本格式,如命令  

hmset news105 news_title title105 news_content content105 news_views 28 

拆分成以下格式:

*8   // 按空格拆分有幾段 
$5   // 代表 hmset 的字元長度
hmset
$7   // 代表 news105 的字元長度,以此類推·
news105
$10
news_title
$8
title105
$12
news_content
$10
content105
$10
news_views
$2
28

利用 MySQL 構造資料

資料表(news)結構:

利用 sql 拼接資料(news.sql):

select concat('*8','\r\n','$5','\r\n','hmset','\r\n','$',LENGTH(news_id)+4,'\r\n','news',news_id,'\r\n'
,'$10','\r\n','news_title','\r\n','$',LENGTH(news_title),'\r\n',news_title,'\r\n','$12','\r\n','news_content','\r\n'
,'$',LENGTH(news_content),'\r\n
',news_content,'\r\n','$10','\r\n','news_views','\r\n','$',LENGTH(news_views),'\r\n',news_views ,'\r') from news order by news_views desc limit 0,5

匯出 sql 執行結果(news):

mysql -uroot -p123456 -D 資料庫名 --skip-column-names --raw < news
  • --skip-column-names:不顯示列名
  • --raw:原生輸出,不做任何轉義

至此,資料構造完畢。批量插入 redis:

cat news | redis-cli --pipe

檢視結果: