8

私はredisに非常に慣れていませんが、まだそれをいじっています。自分のプロジェクトに関連するかどうかをテストしたいのですが、実行している特定のコマンドについてはわかりません。SO のユーザーは、パイプラインとトランザクションを使用することのパフォーマンス上の利点を確信させてくれたので、これを行う方法を尋ねてみようと思いました。

基本的に、発行したいステートメントが 2 つあり、結果を待つ必要はありません (パイプ ライニングの良い候補のようです。次のようになります。

Does valueX exist?
If it does insert valueY

それは非常に単純ですが、これまで調べてきたすべての方法は、ValueX が存在するかどうかの応答を待っているように見えます。プログラムのループを 10 億回以上実行しているため、停止してしまいます。

これは可能ですか?それが役立つ場合、私は Java を使用していますが、どのクライアント ライブラリ (jedis または jredis、まだテスト中) を決定していません。私は実際にはredisに完全に落ち着いてさえいませんが、それに非常に大きく傾いています(スピードに関しては私がやっていることに適しているようです)ので、どんな提案も受け入れられます。

4

2 に答える 2

7

いいえ、そのようなことを達成することは今のところ不可能です。あなたが探しているのは、今のところ欠けている機能ですが、Redis の 2.6 バージョンで利用できるようになります。これは LUA スクリプティングと呼ばれます。以前のコマンドに依存するサーバー コマンドを、クライアントでフェッチする必要なく、すべて 1 つにまとめて実行できます。詳細については、こちらを参照してください。

于 2012-03-08T07:49:48.093 に答える