下面由Redis教學專欄跟大家介紹關於Redis批次寫入,希望對需要的朋友有幫助!
最近測試redis效能,需要批次插入1千萬條以上的數據,
就簡單進行了研究,大概有以下幾種方法:
一:java程式調用,簡單的for循環,透過Jedis的方法,直接插入,
至於速度,不用看,不用試,根本不行,就不給實現了。
二:透過shell腳本,也比較簡單,但也是因為要通過port埠的形式,
連接到redis,速度也是慢的不行,放棄。
三:透過redis提供管道,感覺這個方法是最可靠的,一下是實作:
步驟1:先簡單寫一個shell腳本:
for((i=1;i<=1000000;i++)) doecho "set k$i v$i" >> /tmp/_t.txt done
目的是產生一個用批次插入的腳本文件,
步驟2:這裡linux或windows上產生的文件不能直接當做redis語句來跑,
#簡單來說,就是因為linux, windows和dos的換行並不一樣,
所以需要簡單轉換一下:
#轉換的方法有好多種:
1:一般Linux發行版中都帶有這個小工具,只能把DOS轉換為UNIX文件,指令如下:
# unix2dos dosfile.txt
上面的指令會去掉行尾的^M符號。 (如果機器上沒有安裝nuix2dos,直接用方法2即可)
2:用vim,vim是vi的改進版本,使用方式:
#vim file.txt :set fileformat=dos ::wq
一行指令即可,保存退出,
步驟3:就是跑腳本了,透過redis提供的管道--pipe形式,
cat redisTest.txt | redis- cli -h reids.aliyuncs.com -p 6379 -a xxxx --pipe
三步驟即可,完成redis的批量插入,速度,在2000萬條的情況下,生成腳本的速度稍慢,插入的速度還在幾分鐘,
速度可以說是非常快了~
以上是關於Redis批量寫入的介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!