亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Mysql數(shù)據(jù)批量導(dǎo)入Redis

genefy / 1617人閱讀

摘要:將命令封裝成通信協(xié)議定義的數(shù)據(jù)格式,批量發(fā)送給執(zhí)行執(zhí)行命令后,如果出現(xiàn)類似以下提示,這說(shuō)明導(dǎo)入正確可以打開輸入或者命令來(lái)進(jìn)行查詢。

為了提高系統(tǒng)性能,在很多系統(tǒng)中使用Redis作為緩存數(shù)據(jù)庫(kù),那么在系統(tǒng)啟動(dòng)或重啟后,希望把DB的數(shù)據(jù)初始化到Redis以提高系統(tǒng)的性能,應(yīng)該如何批量導(dǎo)入大量的數(shù)據(jù)呢?

要導(dǎo)入數(shù)據(jù),就要先了解Redis的協(xié)議(RESP),然后用sql拼接數(shù)據(jù)交給redis導(dǎo)入,RESP格式如下:

*n (*表示數(shù)組,按$劃分)
$n (表示參數(shù)長(zhǎng)度)  cmd  (表示命令)
$n (表示參數(shù)長(zhǎng)度)  field  (表示字段)
$n (表示參數(shù)長(zhǎng)度)  value  (表示值)
...

我們拼個(gè)簡(jiǎn)單的數(shù)據(jù),如下:

*4
$5
HMSET
$8
person:1
$2
id
$1
1

上面表示有4組,5表示HMSET的長(zhǎng)度,8表示person:1長(zhǎng)度。。。
命令:HMSET person:1 id 1

下面我們?cè)賹懴聅ql,如下:

SELECT CONCAT(
  "*8
",
  "$", LENGTH(redis_cmd), "
", redis_cmd, "
",
  "$", LENGTH(hash), "
",  hash, "
",
  "$", LENGTH(hkey0), "
",  hkey0, "
",
  "$", LENGTH(hval0), "
",  hval0, "
",
  "$", LENGTH(hkey1), "
",  hkey1, "
",
  "$", LENGTH(hval1), "
",  hval1, "
",
  "$", LENGTH(hkey2), "
",  hkey2, "
",
  "$", LENGTH(hval2), "
",  hval2, ""
)
FROM (
  SELECT
  "HMSET" AS redis_cmd, concat("hash:", id) AS hash,
  "id" AS hkey0,  id AS hval0,
  "age" AS hkey1,  age AS hval1,
  "name" AS hkey2,  name AS hval2
  FROM mytable
) AS t;

注意:換行符 windows使用 ,linux使用

上面的sql可以組裝redis需要的數(shù)據(jù),下面我們編寫導(dǎo)入命令:

mysql -uroot -proot -Dxfdb --default-character-set=utf8 --skip-column-names --raw < mysql_to_redis.sql | redis-cli -h 127.0.0.1 --pipe

--raw: 使mysql不轉(zhuǎn)換字段值中的換行符。
--skip-column-names: 使mysql輸出的每行中不包含列名。
--pipe 將命令封裝成redis通信協(xié)議定義的數(shù)據(jù)格式,批量發(fā)送給redis執(zhí)行

執(zhí)行命令后,如果出現(xiàn)類似以下提示,這說(shuō)明導(dǎo)入正確:

All data transferred. Waiting for the last reply...
Last reply received from server.
errors: 0, replies: 3

可以打開 Redis-cli 輸入dbsize或者keys *命令來(lái)進(jìn)行查詢。
學(xué)習(xí)交流,請(qǐng)加群:64691032

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/77042.html

相關(guān)文章

  • PHP+Mysql高并發(fā)解決

    摘要:更多詳情,請(qǐng)看原文章批量插入性能優(yōu)化相關(guān)文章高并發(fā)簡(jiǎn)單解決方案隊(duì)列緩存批量入庫(kù)離線整合秒殺活動(dòng)設(shè)計(jì)方案 在項(xiàng)目中,經(jīng)常都會(huì)遇到高并發(fā)問(wèn)題,如在某個(gè)時(shí)間點(diǎn)有100個(gè)人對(duì)同一數(shù)據(jù)進(jìn)行更改,這樣就會(huì)產(chǎn)生問(wèn)題,最后導(dǎo)致的數(shù)據(jù)會(huì)不準(zhǔn)確,通常的解決高并發(fā)的方法有讀取數(shù)據(jù)時(shí)加緩存,寫入數(shù)據(jù)時(shí)添加到隊(duì)列,下面羅列一些處理高并發(fā)的常見(jiàn)方法供大家參考。 一、MySQL批量插入優(yōu)化 對(duì)于一些數(shù)據(jù)量較大的系統(tǒng)...

    wuyangchun 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<