2012-05-30 22 views
32

redisコマンドラインインターフェイスを使用して実行する必要があるredisコマンドのテキストファイルがあります。redis cliを使用してコマンドのバッチを実行

DEL 9012012

DEL 1212

DEL 12214314

など

私は一度に速いものよりコマンドを入力する方法を見つけ出すように見えることはできません。数千もの行があるので、それらをすべて1つのDELコマンドにまとめるだけでなく、すべてを一度に実行する必要もありません。

答えて

47

次のコードは、MAC

上のRedis 2.4.7で私の作品
./redis-cli < temp.redisCmds 

んあなたの要件を満たしていますか?または、プログラマチックに高速化する方法があるかどうかを検討していますか?

+0

認証された場合には、 'のRedis-CLIを使用-a arun

+0

Windows PowerShellの場合:Get-Content cmds.txt | redis-cli' –

7

redis-cli --pipeは、大量挿入に使用できます。 2.6-RC4以降とRedis 2.4.14以降で使用できます。例えば :中

cat data.txt | redis-cli --pipe 

さらに詳しい情報:http://redis.io/topics/mass-insert

+1

複数のコマンドを実行する場合は、次のように入力します。 #とflushdbを選択し、ControlAltDelのソリューションを使用します。これは--pipeオプションを使用しても機能しないためです。 – 10basetom

+0

//この質問のために働くことができる '--pipe'オプションを使う方法はありますか? –

+0

私は '--pipe'オプションを使用して' EXPIRE'コマンドの集合を実行することができました。それは挿入以外のものにも有効です。注:私は、ファイル内の各コマンドがラインフィードではなく、改行と改行の両方で区切られていることを確認しなければなりませんでした。 – Nathan

37

ファイルを作成したくない場合は、echoを使用して\n

echo "DEL 9012012\nDEL 1212" | redis-cli 
+0

私の魅力のように働いた! – FearlessFuture

+11

OSによっては、 '\ n'を期待通りに解釈させるために' echo -e'を使うべきです。 CentOSの 'redis-cli -d ' – Kirzilla

+0

、 'echo -e" DEL 9012012 \ nDEL 1212 "を使って常にデフォルトのredisを変更できることを覚えておいてください。レディスクリ –

関連する問題