代理でお願いしたいのですが、職場の別のチームがお客様から変更依頼を受けました。
問題は、顧客が従業員が 1 人のユーザーで同時に複数ログインすることを望んでいないことです。彼らがロックアウトされ、ログインを共有していること。
これは Web ファーム上にあるため、この問題に取り組む最善の方法は何でしょうか?
データベースへのキャッシュはパフォーマンスの問題を引き起こしませんか?
代理でお願いしたいのですが、職場の別のチームがお客様から変更依頼を受けました。
問題は、顧客が従業員が 1 人のユーザーで同時に複数ログインすることを望んでいないことです。彼らがロックアウトされ、ログインを共有していること。
これは Web ファーム上にあるため、この問題に取り組む最善の方法は何でしょうか?
データベースへのキャッシュはパフォーマンスの問題を引き起こしませんか?
memcachedのような分散キャッシュ システムの使用を検討できます。
この問題はかなりうまく解決され (データベースよりもはるかに高速です)、他のほとんどすべてのものをキャッシュするのにも優れています。
それは単にビジネスを行うためのコストです。
はい、データベースへのキャッシュは、Web サーバーでのキャッシュよりも遅くなります。ただし、その状態情報を一元化された場所に保存する必要があります。そうしないと、1 つの Web サーバーが別の Web サーバーにどのユーザーがログインしているかを知ることができません。
仮定: 1 人のユーザーによる複数の同時ログインを防止しようとしています。
ログインおよびログアウト時のデータベース操作は、パフォーマンスの問題を引き起こしません。
あなたの最大の潜在的な問題は次のとおりです。
認証方法によって異なります。最後に成功したログイン日時 (バックエンドに関係なく) を保存する場合は、スキーマを変更して "logged_in" フラグを保存することができ、追加のパフォーマンス コストは発生しません。(まあ、全然きれいじゃない)