問題タブ [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.
sails.js - セイルズアプリをセットアップして redis クラスターに接続するにはどうすればよいですか?
セッション ストアとソケット接続として redis を使用するように、sails アプリをセットアップすることができました。しかし、Redis クラスターに接続するためにセイルをセットアップする方法がわかりません。考えや例はありますか?
もう少し明確にするために、私たちの帆アプリはすでに次のような構成を使用して redis を使用しています。
しかし今、さまざまなサーバーやさまざまなポートで実行されている可能性のある redis クラスターを使用するようにセットアップしたいと考えています。
redis - spring-data-redis 1.7.0.M1 使用時の redis-cluster の設定方法
spring-data-redis バージョン 1.7.0.M1 と jedis バージョン 2.8.0 を使用しています。これが私の構成です
【redisTemplate.opsForValue().get("foo")】を使ってテストする
例外をスローする
spring-data-redis 1.7.0.M1 を使用する場合の redis-cluster の設定方法は?
redis - redis-trib.rb を使用してクラスターを作成すると、接続エラーが発生しますか?
すべての Redis サーバーを次のように構成しました。
マスター: 192.168.0.106:7001、192.168.0.105.7001、192.168.0.112:7001
スレーブ: 192.168.0.106:7002、192.168.0.105:7002、192.168.0.122:7002
192.168.0.106:7002 サーバーは 192.168.0.106:7001 サーバーのスレーブです。私はすべてのサーバーを稼働させており、それらすべてに対して redis-cli を実行できます。17001 および 17002 ポートも開いていることがわかります。しかし、私が実行すると:
./redis-trib.rb create --replicas 1 192.168.0.106:7001 192.168.0.105:7001 192.168.0.112:7001 192.168.0.106:7002 192.168.0.105:7002 192.1268.0.22
エラーが発生します:
クラスターの作成
[エラー] ノード 192.168.0.106:7001 に接続できません
すべてのサーバーが動作していて、ポートが開いている場合、これをトラブルシューティングする方法がわかりません。
1 つのことは、マスターをパスワードで保護していることです。おそらく、redis-trib.rb はパスワードで保護されたサーバーを処理できませんか?
ycsb - redis クラスターのバインドがないため、ycsb を実行して redis クラスターをテストするにはどうすればよいですか?
redisの研究をしています。3 つのマスター ノードを使用して Redis クラスターを構築し、ycsb を実行するための別のノードを用意しました。To start YCSB load with cluster enabled option for REDIS で説明されているのと同じ問題が発生し ます。そして、与えられた答えに基づいて RedisClient.java を編集しようとしました。ただし、エラーが発生しました: import redis.clients.jedis.HostAndPort; redis.clients.jedis.JedisCluster をインポートします。これらのパッケージは存在しないためです。だから私の質問は redis.clients.jedis.JedisCluster のようなパッケージを見つける場所? Redis クラスターをテストするために RedisClient.java の編集に成功した人はいますか?それとも他の解決策がありますか?ありがとう!
redis - Redis クラスター内のマシンで実行する必要がある Redis インスタンスの数
Hola Redis ユニバース!!
以下のredisクラスタ構成を予定しています。
- 5 つのノードで構成される Redis クラスター。
- 各ノードには 8 コア、64 GB RAM、および 100 GB SSD ドライブが必要です。
- マスター インスタンスごとに 1 つのスレーブ。
- すべてのインスタンスで 15 分後に RDB 永続性 (AOF なし) のみ。
1 秒あたりの読み取り/書き込み数は、20,000 を超えると予想されます。
各ノードには、(他のノードの) n マスターと n スレーブを配置する予定です。redis のシングルスレッドの性質を考慮して、複数のコアを利用したいと考えています。1 つのノードでいくつの redis インスタンス (マスターとスレーブ) を実行する必要がありますか? すなわち。n の値として何を使用する必要がありますか? (2マスター/2スレーブまたは3マスター/3スレーブ)
ローカルで複数のインスタンスを実行していることを確認したところ、RDB の保存中に CPU 使用率が大幅に上昇したようです。複数のインスタンスを実行すると、保存されるさまざまなインスタンスの時間が衝突するため、問題が増加します。製作上問題になるのでしょうか?
ありがとう
redis - Redis キースペース通知 - サブスクライバーの数と競合
Redis を使用してタグ付けを実装しようとしています。これは次のようになります。
Redis Keyspace Notificationsを使用して、期限切れのキーがタグ セットに永遠に残るのを防ぐことを計画しています (キャッシュ内のすべてのアイテムにデフォルトの TTL セットがある場合でも、古いデータを保持するのは好きではありません)。
これらは私が検討しているオプションです:
1) すべての「期限切れ」のイベントを購読します。
長所:
- 購読者は1名のみ。
短所:
- すべてのアイテムにタグが含まれているわけではないため、mykey:tags を確認し、存在する場合はタグを取得して、各タグ セットからアイテムを削除する必要があります。
- このメソッドの競合は、ストア内のキーの量に応じて増加します。
2) タグのみを含むキーのすべてのイベントをサブスクライブします。
長所:
- サブスクリプションは、タグ付きのアイテムに対してのみ作成されます。
短所:
- 各サブスクライバーに関連付けられたオーバーヘッドが必要です。
- 購読者の数は、ストア内のタグ付けされたアイテムの数に応じて、かなり急速に増加する可能性があります.
質問:
- どのオプションを実装する必要がありますか? 2) の加入者数を気にする必要がありますか? それとも 1) の競合の方が大きいですか? このテーマに関する推奨事項は見つかりませんでした。
- 最終的なゲームは、これを Redis クラスターに実装することです。これにより、実装に特別な懸念が追加されますか?
更新 1:
これは、キャッシュの上にタグ付けするための一般的な実装です。この時点では、最終的にそれをどのように使用したかはわかりません。これは、私が取り組んでいる PoC に似ています。コメントのいくつかの質問に答えようとしているいくつかの数字:
- ボリューム: 1 日あたり何千万ものユニークな訪問者がいます。ただし、訪問者ごとにキャッシュに保存されているすべてのアイテムにタグがあるわけではありません。しかし、これは絶えず変化します。
- タグ: タグを管理します。現在、数十のタグがあります。将来的にはフリー テキスト タグのサポートを検討しています。
- ここで提案している 2 つのアプローチのいずれもテストしていません。オプションの1つが非常に悪く、オプションでさえなかったことを望んでいました:)
更新 2:
いくつかの試行錯誤といくつかの調査の後、私は破棄しました2)。redis クライアントと出力バッファーには制限があるため、このオプションは使用できません。詳細については、こちらとこちらをご覧ください。私は1)を試しましたが、うまくいきました。キーの有効期限を互いに 5 ミリ秒間隔に設定しても、コードはそれを適切に処理します。これは行く代わりになる可能性があります。
別のオプションは、@ thepirat000 によって提案されたものです。この回答を承認済みとしてマークしていますが、彼の提案に少し調整を加えています。タグ操作ごとにタグのメンテナンスを行いたくありません。代わりに、いつ行うかをランダムに決定できます。これは、pub/sub もキースペース通知も使用しない十分なアプローチです。
redis - Sentinel で Redis クラスターを実行する方法
通常、スケーリングと高可用性は異なる概念であるため (負荷分散のフォールト トレランス スキームを選択しない限り)、Redis が両方をサポートすることを望みました。しかし、私の理解では、Redis クラスターと Sentinel を混在させることはできませんか? その場合、複数のパーティションを持ち、Sentinel によって管理されるデプロイメントを作成するにはどうすればよいですか? これがどのように行われるかを説明するガイドはありますか?
node.js - Redisクラスターで利用可能なすべてのキーを取得するRedisコマンド?
私はこれを使用しています
ただし、redis クラスターの 1 つのみからのキーのみを提供します。すべてのクラスターからキーを取得するにはどうすればよいですか?