高いユーザー負荷を処理するためにスケーラブルである必要がある ASP.NET/C# の Web アプリに取り組んでいます (おそらく Web ファームで実行されます)。約100万人以上の多数のユーザーに対応するため、オンラインユーザーの数は約30K〜50Kになります. 私はキャッシング(プロバイダーベース)を使用する予定で、疑問に思っていました:
パフォーマンスのためにすべてのユーザーをキャッシュすることは良い考えですか? 設定などの他のすべての一般的なデータをキャッシュする予定ですが、すべてのユーザーをメモリにキャッシュするとどのくらい効率的でしょうか? ユーザーが自分のプロファイルを変更した場合、その特定のユーザーのみをキャッシュにリロードします (すべてのユーザーのコレクションがあります)。このアプローチに関する提案はありますか?
このユーザーキャッシュを使用する場合、ロックについて心配する必要はありますか? ユーザー自身がプロファイルを編集するのは 1 回だけであり、それは 1 つのアトミック操作になりますが、異なるスレッドで複数の読み取り操作が行われます。では、キャッシュからユーザーをフェッチするとき、または特定のユーザーを更新するときに、ロックを使用する必要がありますか?
ありがとう
かのように