問題タブ [jedis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 特定の値に基づいて、Redisハッシュから複数のアイテムを削除する
アイテムの値に特定の部分文字列が含まれているかどうかに基づいて、ハッシュからアイテムの束を削除する最も効率的な方法は何ですか?私の知る限り、これを1つの単純なブロックで行う方法は実際にはありません。Javaリストでそのハッシュのすべての値を文字通り取得し、必要なものが見つかるまでこのリストを繰り返し処理し、ハッシュからそのキーを削除して、同じ手順を何度も繰り返す必要があります。
私が試したもう1つのアプローチは、ハッシュアイテムへのID参照を別のリストに配置することでした。これにより、後で1回の呼び出しで、削除する必要のあるアイテムのIDのリストを取得できます。それは少し良かったのですが、それでも、私が使用しているredisの実装(Jedis)は、複数のハッシュキーの削除をサポートしていないため、手を縛られたままになっています。
Redisは参照整合性をサポートしていませんよね?つまり、OK、Redisリストに格納されているキーはハッシュ内のアイテムへの参照であるため、リストを削除すると、ハッシュから対応するアイテムが削除されます。Redisにはそのようなものはありませんよね?
このループを通過して、すべてのアイテムを個別に削除する必要があります。少なくとも、1000個の個別のコマンドではなく、1000個のコマンドをすべて収集して、1回の呼び出しで送信できるブロックのようなものがあればいいのにと思います。
java - spring-data libではなくSpringでjedisを使用し、プールをどこに保存しますか?
jedis docs では、プールを作成するように言われています:
JedisPool プール = new JedisPool(new JedisPoolConfig(), "localhost");
そして、これをどこかに静的に保存する必要があります。
spring には開発中の spring-data ライブラリがあることは知っていますが、今のところそれなしでライブラリを使用したいだけです。
プールへのこの静的参照をどこで作成することをお勧めしますか?
JedisService を作成してから、このプールを返す public メソッドを用意する必要がありますか?
シングルトンパターンを使用してこれを行いますか? 戻る前にロックしますか?
java - Jedis Redisのセマンティクスを変更しますか?
したがって、Redisは、zrange(および関連するソートされたsetコマンド)をORDEREDの結果セット(おそらく重複のないリスト?)として指定します。
Jedis(公式および推奨のREDISクライアント)のzrange(および関連するAPI)がセットを返すのはなぜですか?定義上、順序付けの概念がないのはどれですか?
これは、redis操作のセマンティクスに直接違反します。
これは、zrangejedis2.0.0の実装です。
ジェダイの貢献者、あなたはそれを修正することを計画していますか?
timeout - jedis pubsubとタイムアウト:サブスクライバーとして無限にリッスンする方法は?
私は、Redis pubsub チャネルのサブスクライバーとして無限にリッスンし、着信時にメッセージを処理する Jedis クライアントを作成するという概念に苦労しています。
私の問題は、しばらく非アクティブになった後、サーバーがサイレントに応答を停止することです。これは、サブスクライブしている Jedis クライアントでタイムアウトが発生したためだと思います。
これは実際にそうである可能性が高いでしょうか?もしそうなら、この特定の Jedis クライアントをタイムアウトしないように設定する方法はありますか? (他の Jedispools はグローバルに設定されたタイムアウトの影響を受けませんが) あるいは、私が達成しようとしている別の (ベストプラクティス) 方法はありますか?
これは私のコードです(表示用に変更/削除されています):
Web サーバーの起動時に実行:
new Thread(AkkaStarter2.getSingleton()).start();
AkkaStarter2.java
ありがとう。
java - どうすれば1つだけでなく複数のファイルにredisをダンプできますか?
こんにちは,2 つの質問をしたいと思います。(私はJavaとジェディスを使用しています)
- 2G データを redis に書き込みたいのですが、どうすればより速く書き込むことができますか?
- redis はデータを dump.rdb だけでなく複数のファイルにダンプしますか? データが 4G と大きすぎるなど、データは dump.rdb と dump2.rdb にダンプされますか?
redis - Jedis はソケット接続を使用してどのように redis サーバーに接続できますか?
Jedis ライブラリを使用して redis ソケット接続に接続する方法がわかりません。
ネットワークポートを介して接続する方法を知っています:
しかし、ソケット接続 (リストの 2 番目) は機能しません。コマンドは redis-py(python client) に似ているように見えましたが、同じ構文を試してもうまくいきませんでした。また、github で jedis のソースコードを調べましたが、何も表示されませんでした。何か案は?
jedis - RedisでJavaオブジェクトを値として使用する方法
私はRedisを初めて使用します。
Jedisをダウンロードして、クラスパスに追加しました。ただし、Javaオブジェクトを「値」として格納する方法は提供されません。
私は何かが足りないのですか、それともジェダイはJavaオブジェクトを値として保存する方法を提供していませんか?
ありがとう、-Venkat
database - redis は、前のコマンドに依存する複数のコマンドをパイプライン処理できますか?
私はredisに非常に慣れていませんが、まだそれをいじっています。自分のプロジェクトに関連するかどうかをテストしたいのですが、実行している特定のコマンドについてはわかりません。SO のユーザーは、パイプラインとトランザクションを使用することのパフォーマンス上の利点を確信させてくれたので、これを行う方法を尋ねてみようと思いました。
基本的に、発行したいステートメントが 2 つあり、結果を待つ必要はありません (パイプ ライニングの良い候補のようです。次のようになります。
それは非常に単純ですが、これまで調べてきたすべての方法は、ValueX が存在するかどうかの応答を待っているように見えます。プログラムのループを 10 億回以上実行しているため、停止してしまいます。
これは可能ですか?それが役立つ場合、私は Java を使用していますが、どのクライアント ライブラリ (jedis または jredis、まだテスト中) を決定していません。私は実際にはredisに完全に落ち着いてさえいませんが、それに非常に大きく傾いています(スピードに関しては私がやっていることに適しているようです)ので、どんな提案も受け入れられます。
scala - Redis キューの順序が正しくない
注文したアイテムのセットを保存するために redis を使用しています。サンプルコードは次のとおりです。
プロデューサーを実行すると、
コンシューマーを実行すると、
アイテムの順序が正しくないのはなぜですか。これは実際には FIFO ではありません。