共計 1303 個字符,預計需要花費 4 分鐘才能閱讀完成。
這篇文章主要介紹“MySQL 怎么向 Redis 遷移”,在日常操作中,相信很多人在 MySQL 怎么向 Redis 遷移問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MySQL 怎么向 Redis 遷移”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!
文章目錄
Mysql 到 Redis 的數據協議
從 mysql 搬一個大表到 redis 中,你會發現在提取、轉換或是載入一行數據時,速度慢的讓你難以忍受。這里我就要告訴一個讓你解脫的小技巧。使用“管 道輸出”的方式把 mysql 命令行產生的內容直接傳遞給 redis-cli,以繞過“中間件”的方式使兩者在進行數據操作時達到最佳速度。
一個約八百萬行數據的 mysql 表,原本導入到 redis 中需要 90 分鐘,使用這個方法后,只需要兩分鐘。不管你信不信,反正我是信了。
其它翻譯版本 (1)
zzxworld
翻譯于 昨天 (14:36)1CREATE TABLE events_all_time (2
id int(11) unsigned NOT NULL AUTO_INCREMENT,3
action varchar(255) NOT NULL,4
count int(11) NOT NULL DEFAULT 0,5
PRIMARY KEY (id),6
UNIQUE KEY uniq_action (action)7);
準備在每行數據中執行的 redis 命令如下:
1HSET events_all_time [action] [count]
按照以上 redis 命令規則,創建一個 events_to_redis.sql 文件,內容是用來生成 redis 數據協議格式的 SQL:
01– events_to_redis.sql02
03SELECT CONCAT(04
*4\r\n ,05
$ , LENGTH(redis_cmd), \r\n ,06
redis_cmd, \r\n ,07
$ , LENGTH(redis_key), \r\n ,08
redis_key, \r\n ,09
$ , LENGTH(hkey), \r\n ,10
hkey, \r\n ,11
$ , LENGTH(hval), \r\n ,12
hval, \r 13)14FROM (15
SELECT16
HSET as redis_cmd,17
events_all_time AS redis_key,18
action AS hkey,19
count AS hval20
FROM events_all_time21) AS t
ok, 用下面的命令執行:
1mysql stats_db –skip-column-names –raw events_to_redis.sql | redis-cli –pipe
很重要的 mysql 參數說明:
–raw: 使 mysql 不轉換字段值中的換行符。
–skip-column-names: 使 mysql 輸出的每行中不包含列名。
到此,關于“MySQL 怎么向 Redis 遷移”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!