パイプモードでファイルと redis-cli を使用して redis に一括挿入したいという単純な問題。Redis のドキュメントでこれについて説明されています: http://redis.io/topics/mass-insert
私のファイルには、次のコマンドのみが含まれています。
HMSET client:1 name "Michael"
私のシェル(Ubuntu Linux)で試してみると:
cat data.txt | redis-cli --pipe
次のエラーが表示されます。
ERR unknown command '$4'
ERR wrong number of arguments for 'echo' command
ERR unknown command '$20'
他のユーザーが同じ問題を抱えているのを見てきました ( Redis 大量挿入の使用方法) が、良い解決策が見つかりませんでした。
どんな助けでも大歓迎です。
更新: 解決策
最後に、私にとって最良の選択肢は、Python で開発された redis クライアントを使用することでした。これは非常に簡単な解決策であり、要点は、redis プロトコルを直接使用/コーディングする必要がないことです。
redis-py クライアント ( https://github.com/andymccurdy/redis-py ) を選択します。インストール後、その機能を Python スクリプトにインポートできます。これは、私のスクリプトがどのように機能するかの例です。
import redis
# Connection to 0 database (default in redis)
r = redis.Redis(host="localhost",db=0)
# inserting client hashmaps
r.hmset('client:1', {'name':'John', 'company':'Microsoft'})
r.hmset('client:2', {'name':'James', 'company':'Apple'})
# inserting a list of domains for client 1
r.rpush('client:1:domains','www.microsoft.com','www.msn.com')
#to print values in stdout
print(r.hgetall('client:1'))