あなたは時期尚早の最適化の道を進んでいると思います(これは通常、最善ではありません)。
パイプラインをサポートするRedisクライアントを備えたスクリプト言語は、少なくとも50Kコマンド/秒をRedisサーバーにプッシュできる必要があります。コードは単純で、Redisプロトコルを手動でエンコードする必要はありません。確かに、大規模な挿入トリックの方が高速ですが、本当に必要ですか?
それでも大量の挿入に固執したい場合は、適切なRedisコマンドをエンコードする必要があります。あなたが提供した例はいくつかの理由で間違っています:
-
引数の数が間違っています(例は* 3で始まる必要があります)
-
最後の引数の長さが間違っています(1,2,34の長さは5ではなく6バイトです)。
-
SADDコマンドでは、セットのアイテムごとに1つの引数が必要です(つまり、Redis 1,2,34の場合、3つではなく1つのアイテムになります)。
適切なコマンドは、次のようになります。
"*5\r\n$4\r\nSADD\r\n$2\r\n80\r\n$1\r\n1\r\n$1\r\n2\r\n$2\r\n34\r\n"
Redisプロトコルの説明は次のとおりです:http://redis.io/topics/protocol