mysql數據導入redis


先編寫sql腳本,查詢好需要導入redis的數據,同時在腳本中設定好redis的類型;最外層的查詢需要設定好查詢的字段數量,key value各算一個。

我用的是hash結構,將表明以key的形式存儲,字段+對應的值以json格式存儲,腳本在圖片下方

腳本上傳到服務器后使用此命令導入數據(用戶名密碼、腳本路徑自行更改):mysql -uroot -p123456 -h 127.0.0.1 database--skip-column-names --raw <data.sql | /usr/local/bin/redis-cli -h 127.0.0.1 -p 6379 -a mima --pipe

 

 

 

SELECT CONCAT(
"*4\r\n",
'$', LENGTH(redis_cmd), '\r\n',
redis_cmd, '\r\n',
'$', LENGTH(redis_key), '\r\n',
redis_key, '\r\n',
'$',LENGTH(hkey),'\r\n',hkey,'\r\n',
'$',LENGTH(hval),'\r\n',hval,'\r\n'
)
FROM(
SELECT
'HSET' AS redis_cmd,
'tab_product' AS redis_key,
a.product_id AS hkey,
CONCAT(
'{"id":"', a.id,'"',
',"productId":"', a.product_id,'"',
',"shopId":"', a.shop_id,'"',
',"title":"', a.title,'"',
',"originalPrice":"', a.original_price,'"',
',"price":"', a.price,'"',
',"info":"', a.info,'"',
',"createTime":"', a.create_time,'"',
',"updateTime":"', ifnull(a.update_time,''),'"',
',"status":"', a.status,'"',
',"img":"', a.img,'"',
',"upperLimit":"', a.upper_limit,'"',
',"endTime":"', ifnull(a.end_time,''),'"',
',"refushReason":"', ifnull(a.refush_reason,''),'"',
',"putawayDate":"', ifnull(a.putaway_date,''),'"',
',"tagId":"', ifnull(c.tag_id,''),'"',
',"tagName":"', ifnull(d.title,''),'"',
',"shopName":"', ifnull(e.shop_name,''),'"',
',"address":"', ifnull(e.address,''),'"',
',"businessHours":"', ifnull(e.business_hours,''),'"',
',"pension":"', round(ifnull(e.pension_scale,0) * a.price, 2),'"',
',"productImageList":', ifnull(CONCAT('[',GROUP_CONCAT('{"img":"',b.img, '"}'),']'),''),'}'
) AS hval
FROM `tab_product` a
LEFT JOIN tab_product_image b on a.product_id = b.product_id and b.state = 0
LEFT JOIN tab_product_tag c on c.product_id = a.product_id and c.state = 0
LEFT JOIN tab_tag d on d.id = c.tag_id and d.state = 0
LEFT JOIN shop.tab_shop e on e.shop_id = a.shop_id
group by a.id
) AS t

 

這是HSET結構,用到的改一下上面的就可以了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM