Redis一括書込み


最近redisの性能をテストして、1千万本以上のデータを大量に挿入する必要があります.
簡単に研究しましたが、以下の方法があります.
一:javaプログラム呼び出し、簡単なforループ、Jedisの方法を通じて、直接挿入して、
速度については、見なくても、試しなくても、全然だめで、実現しません.
二:shellスクリプトで、比較的簡単ですが、portポートの形式を通過するため、
redisに接続しても速度が遅くてダメなので諦めます.
3:redisを通じてパイプを提供して、この方法が最も頼りになると感じて、次は実現します:
手順1:まずshellスクリプトを簡単に書きます.
for((i=1;i<=1000000;i++))
        do
echo "set k$i v$i" >> /tmp/_t.txt
        done

一括で挿入されたスクリプトファイルを生成することを目的としています.
 
手順2:ここでlinuxやwindowsで生成されたファイルを直接redis文として走ることはできません.
簡単に言えばlinux、windowsとdosの改行が違うので、
簡単に変換する必要があります
変換の方法はいくつかあります.
1:一般的なLinuxリリースにはこのガジェットが付属しており、DOSをUNIXファイルに変換するしかありません.コマンドは以下の通りです.
            # unix2dos dosfile.txt
上のコマンドは行末の^M記号を外します.(機械にnuix 2 dosが取り付けられていない場合は、直接方法2を使えばよい)
2:vim、vimはviの改良バージョンで、使用方法:
            #vim file.txt
            :set fileformat=dos
             ::wq
1行のコマンドで終了を保存し、
手順3:スクリプトを実行し、redisで提供されるパイプ--pipe形式を通じて、
cat redisTest.txt | redis-cli -h reids.aliyuncs.com -p 6379 -a xxxx --pipe
              
3ステップでredisの一括挿入、速度を完了し、2000万本の場合、スクリプトの生成速度がやや遅く、挿入速度が数分で、
スピードはとても速いと言えます~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~