hiredisを使用して1回の呼び出しで複数のレコードを送信する

カディールエルデムデミール

このリストが、redisクライアント「hiredis」について質問するのに適していることを願っています。以下のredisクライアントで行っているのと同じことを実現したいと思います。ご覧のとおり、redisは1回のrpush呼び出しで3つの異なるレコードを送信します。

redis 127.0.0.1:6379> rpush test kemal erdem husyin

(integer) 3
redis 127.0.0.1:6379> lrange test 0 -1
1) "kemal"
2) "erdem"
3) "husyin"

私のプロジェクトでは、hiredisの例を使用します。

reply =  (redisReply*)(redisCommand(c, "RPUSH %s %s" , channelName,  message));

しかし今、私はすべての行がchar[][];のようなバフで保持されている大きなログファイルを持っています各行を異なるレコードとして送信する必要がありますが、パフォーマンスのためにrpushを1回だけ呼び出す必要もあります。アドバイスはありますか?

ディディエ・スペツィア

数千を超えるアイテムをプッシュするための一意のコマンドを送信することはお勧めできません。これは通信バッファを飽和させ、Redisのシングルスレッドの性質により、大きなコマンドは他のすべての同時コマンドをブロックします。

n個のアイテム(nは10から100)の小さなパケットのバッチでプッシュコマンドを作成し、プッシュコマンドをm個のコマンド(mは10から100)のパイプラインにグループ化することをお勧めします

アルゴリズムは次のようになります。

While there are still lines to read:
   New Redis pipeline, i=0
   While there are still lines to read and i<m:
      Read at most n lines
      Build push command for the read lines
      Pipeline push command
      ++i
   Flush Redis pipeline, check return status if needed

N /(n * m)ラウンドトリップのみを生成します(Nは入力ファイルの行数です)。

任意の数のパラメーターを使用してコマンドを作成するには、redisAppendCommandArgv関数を使用できます

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Shopify API:1回の呼び出しでIDを介して複数のレコードを取得します

分類Dev

1回の呼び出しで複数のテンプレート関数を呼び出す方法は?

分類Dev

Java APIを使用して1回の呼び出しで複数のファイルをGoogle Cloud Storageにアップロードする方法

分類Dev

DAMLのコマンド送信サービスへの1回の呼び出しで複数のコマンドを実行すると、1つまたは複数のトランザクションが発生しますか?

分類Dev

1回のAPI呼び出しで複数のDocuSignエンベロープを作成して送信することは可能ですか?

分類Dev

1回の呼び出しでFirebaseの複数のタイプのノードを更新する方法(Swift)

分類Dev

オブザーバブルを使用して、1回のhttp呼び出しで複数のコンポーネントプロパティを更新します

分類Dev

1回の呼び出しで複数のターゲットを使用するMakefileルール

分類Dev

mojoliciousで複数のレイアウト呼び出しを使用してCSSスタイルシートを1回だけロード

分類Dev

Eclipseで複数の呼び出しを使用して1行で印刷する

分類Dev

1回の呼び出しで複数のajax呼び出し関数を実行する方法

分類Dev

Meteorで1回の呼び出しを使用してmongodbに複数のドキュメントを挿入する

分類Dev

1回の置換呼び出しで複数の文字を置換する

分類Dev

1回の呼び出しで複数のパスを更新する

分類Dev

1回の呼び出しで複数のmysqlクエリを実行する

分類Dev

1回のAPI呼び出しで複数のドキュメントをElasticに送信するにはどうすればよいですか?

分類Dev

luaL_loadbufferは1回の呼び出しで複数のファイルをロードできますか?

分類Dev

WebServiceX.netを使用して、1回の呼び出しから複数の為替レートを返します

分類Dev

AngularJS-1回のAJAX呼び出しで複数のウィジェットのデータを取得する

分類Dev

複数の変数を使用して関数を呼び出します。PHP-Laravel-ブレード

分類Dev

1つのajaxで複数のインスタンスを送信し、laravelでコントローラー呼び出しを受信する方法

分類Dev

1回のプロセス呼び出しで複数のファイルをプリンターに送信する方法

分類Dev

Javascriptを使用して複数の指標を使用してAPI呼び出しをGoogleAnalyticsAPIに送信する方法

分類Dev

「withParameters:」呼び出しで複数のパラメータを送信する

分類Dev

std :: thread C ++を使用して同じ関数を呼び出す複数のスレッドを生成する方法

分類Dev

Linuxは複数の呼び出しでwatchコマンドを使用します

分類Dev

Mongoose-1回の関数呼び出しで複数のドキュメントを削除します

分類Dev

Mongoose-1回の関数呼び出しで複数のドキュメントを削除します

分類Dev

複数の属性に対して関数を1回呼び出す

Related 関連記事

  1. 1

    Shopify API:1回の呼び出しでIDを介して複数のレコードを取得します

  2. 2

    1回の呼び出しで複数のテンプレート関数を呼び出す方法は?

  3. 3

    Java APIを使用して1回の呼び出しで複数のファイルをGoogle Cloud Storageにアップロードする方法

  4. 4

    DAMLのコマンド送信サービスへの1回の呼び出しで複数のコマンドを実行すると、1つまたは複数のトランザクションが発生しますか?

  5. 5

    1回のAPI呼び出しで複数のDocuSignエンベロープを作成して送信することは可能ですか?

  6. 6

    1回の呼び出しでFirebaseの複数のタイプのノードを更新する方法(Swift)

  7. 7

    オブザーバブルを使用して、1回のhttp呼び出しで複数のコンポーネントプロパティを更新します

  8. 8

    1回の呼び出しで複数のターゲットを使用するMakefileルール

  9. 9

    mojoliciousで複数のレイアウト呼び出しを使用してCSSスタイルシートを1回だけロード

  10. 10

    Eclipseで複数の呼び出しを使用して1行で印刷する

  11. 11

    1回の呼び出しで複数のajax呼び出し関数を実行する方法

  12. 12

    Meteorで1回の呼び出しを使用してmongodbに複数のドキュメントを挿入する

  13. 13

    1回の置換呼び出しで複数の文字を置換する

  14. 14

    1回の呼び出しで複数のパスを更新する

  15. 15

    1回の呼び出しで複数のmysqlクエリを実行する

  16. 16

    1回のAPI呼び出しで複数のドキュメントをElasticに送信するにはどうすればよいですか?

  17. 17

    luaL_loadbufferは1回の呼び出しで複数のファイルをロードできますか?

  18. 18

    WebServiceX.netを使用して、1回の呼び出しから複数の為替レートを返します

  19. 19

    AngularJS-1回のAJAX呼び出しで複数のウィジェットのデータを取得する

  20. 20

    複数の変数を使用して関数を呼び出します。PHP-Laravel-ブレード

  21. 21

    1つのajaxで複数のインスタンスを送信し、laravelでコントローラー呼び出しを受信する方法

  22. 22

    1回のプロセス呼び出しで複数のファイルをプリンターに送信する方法

  23. 23

    Javascriptを使用して複数の指標を使用してAPI呼び出しをGoogleAnalyticsAPIに送信する方法

  24. 24

    「withParameters:」呼び出しで複数のパラメータを送信する

  25. 25

    std :: thread C ++を使用して同じ関数を呼び出す複数のスレッドを生成する方法

  26. 26

    Linuxは複数の呼び出しでwatchコマンドを使用します

  27. 27

    Mongoose-1回の関数呼び出しで複数のドキュメントを削除します

  28. 28

    Mongoose-1回の関数呼び出しで複数のドキュメントを削除します

  29. 29

    複数の属性に対して関数を1回呼び出す

ホットタグ

アーカイブ