問題タブ [ioredis]

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.

0 投票する
1 に答える
479 参照

node.js - Redis のデータをオーバーライドする同時リクエスト

シナリオ:リクエストが来るたびに、Redis インスタンスに接続し、接続を開き、カウントをフェッチし、カウントを更新し、接続を閉じる必要があります (すべてのリクエストについて、これがフローです)。リクエストが順番に来る場合、つまり 1ユーザーが 100 個のリクエストを次々に送信すると、Redis のカウントは 100 になります。

問題:問題は同時リクエストが来るときです。つまり、10 人のユーザーが 100 のリクエスト (各ユーザーが 10 のリクエスト) を同時に送信している場合、カウントは 100 ではなく、約 50 です。

例: Redis のカウントが 0 であると仮定します。10 個のリクエストが同時に来ると、10 個の接続が開かれ、10 個の接続すべてがカウント値を 0 としてフェッチし、1 に更新します。

分析:リクエストが同時に送信されるため、複数の接続が同じカウント値を取得して更新していることがわかりました。これは、カウント値がオーバーライドされているためです。すでにこの問題に遭遇している場合、この問題を回避する最善の方法を誰かが提案できますか?

ここでは、Hapijs、Redis 3.0、ioredis を使用しています。

0 投票する
1 に答える
2901 参照

node.js - ノードjsを使用したAWS ioredis

AWS にある redis クラスターに接続する必要があります。ioredis と node js を使用して redis クラスターに接続する方法を誰でも案内できますか? 1 つのマスターと 3 つのスレーブがあります。事前に感謝します。