sql >> データベース >  >> NoSQL >> Redis

Redis一括挿入

    あなたは時期尚早の最適化の道を進んでいると思います(これは通常、最善ではありません)。

    パイプラインをサポートする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




    1. MongoDB $ substrBytes

    2. Spring Data RedisTemplate:値とHashValueのシリアル化

    3. ServiceStack.Redisトランスポートを読み取れません-BasicRedisClientManager

    4. MongoDBのestimatedDocumentCount()