問題タブ [redis-cluster]
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.
redis - Redis と temproxy
最初に、ローカル マシンに 3 つのマスターと 3 つのスレーブを持つ Redis クラスターを形成しました。
ここで、Redis クラスターでtemproxyを使用したいので、以下の行 (以下を参照) を構成ファイルとして使用し、Redis クラスターで temproxy を実装しました。
しかし、私が直面している問題は、送信した 100 個のキーのうち、port 22122
30 ~ 40 個しか Redis クラスターに登録されていないことです。
助けてください!
redis - Redis Lua スクリプトが異なる Redis クラスター ノードのキーをアトミックに更新できないのはなぜですか?
複数のノードで構成される Redis クラスターがあります。1 回のアトミック操作で 3 つの異なるキーを更新したいと考えています。私のLuaスクリプトは次のようなものです:
そして、私はそれを発射しました:
しかし、エラーメッセージが表示されました:
上記の操作は実行できず、更新は失敗します。単一の Lua スクリプトで異なるノードのキーを変更できないようです。しかし、ドキュメントによると:
すべての Redis コマンドは、実行前に分析して、コマンドが操作するキーを決定する必要があります。これを EVAL に適用するには、キーを明示的に渡す必要があります。これは多くの点で便利ですが、特に Redis クラスターがリクエストを適切なクラスター ノードに転送できるようにするために役立ちます。
このルールは、Redis クラスターと互換性のないスクリプトを作成することを犠牲にして、Redis の単一インスタンス構成を悪用する機会をユーザーに提供するために強制されないことに注意してください。
したがって、キーの受け渡し規則に従っていれば、スクリプトは Redis Cluster と互換性があるはずです。ここで何が問題なのか、単一のスクリプトですべてのキーを更新するにはどうすればよいのでしょうか。
java - Lettuce Redis クライアントでクライアント コンシステント ハッシュを使用する方法
クライアント側の一貫したハッシュでLettuce Redis クライアントを構成および使用する方法の参照を見つけようとしています。
シャーディングのためのこのアプローチは、Jedis クライアントのShardedJedisに実装されており、 Redis パーティショニングのドキュメントで説明されています。
アプローチの簡単な説明: 複数の独立した Redis プロセス/ノードを備えた環境があり、Redis Cluster または Sentinel を使用したサーバーベースのリクエスト ルーティングはなく、クライアントはハッシュ関数 (key -> node_id) をクライアント側で使用します。
レタスはすぐにこのタイプのクラスタリング/シャーディングをサポートしますか? はいの場合、クライアントハッシュを使用するように構成するにはどうすればよいですか?
python - Celery を使用して書き込もうとすると RedisClusterException
私の環境: 3 つの Ubuntu サーバーがあります。1 台のサーバーは、Nginx を使用したロード バランサーとして使用されます。他の 2 つのサーバーには、まったく同じプロジェクトが含まれています (一方のボックスがマスターで、もう一方がスレーブである redis を除いて同一です)。
私が使用しているプログラム/アプリケーション Python、Gunicorn、Django、Celery、Redis、Sentinel
私のプロジェクトの内容: GET リクエストを受け取り、リクエストに関するいくつかのロジックを実行し、redis に保存する URL があります。
私の接続が次の場合、これは正常に機能していました。
しかし、クラスター接続を使用すると:
私が得るエラー:
redis-cli を実行してマスター (サーバー 1) で変数を設定すると、スレーブ (サーバー 2) で取得できます
redis クライアントでクラスター スロット コマンドを実行しようとすると、上記と同じエラーが発生します。
考慮すべきことの 1 つは、tcp redis を使用しようとしたときに、私の redis 構成ファイルに tcp ソケットがないことです。redisを実行しようとすると、エラーが発生しました。これは、デフォルトの redis.conf ファイルに含まれるデフォルトの Unixsocket に変更されました。
から:
に:
redis - redisクラスターの「クラスターが参加するのを待っています」問題を解決するには?
3 台のマシンがあり、redis クラスター用に 6 つのノードを作成します。数か月前に正常に作成しましたが、現在は削除されています。修正するために最善を尽くしていますが、機能しないため、すべてのデータを消去してゼロから再作成します、次のコマンドを使用してクラスターを作成すると、ここでブロックされ、ノードがクラスターに参加するのを待って、いくつかの調査を行い、データを消去し、何度もログに記録し、何度も繰り返しますが、それでも機能しません。
redis - redis クラスターのレプリケーションを無効にするにはどうすればよいですか
ここには、redis クラスターを使用して 2 秒程度の短命のキーを保持するアプリケーションがあります。マスターに何かが起こった場合にマスターがスレーブにフェイルオーバーすることを望んでいますが、この一時的なデータの短期的な損失は重要ではありません。帯域幅を節約するために、マスターとスレーブ間のレプリケーションを無効にしたいと考えています。これを実現できるクラスタ内のマスターとスレーブの構成はありますか?