現在、ASP.netのC#3.5でプロジェクト管理アプリケーションに取り組んでいます。データベースへのヒットを減らすために、静的変数を使用して多くの情報をキャッシュしています。たとえば、ユーザーのリストは静的クラスのメモリに保持されます。このクラスは、起動時にデータベースからすべての情報を読み取り、変更が加えられるたびにデータベースを更新しますが、日付ベースから読み取る必要はありません。
このクラスは、データベースへの書き込みと同時に、更新された情報で他のWebサーバー(存在する場合)にpingを実行します。pingメカニズムは、キャッシュオブジェクトがランダムに使用可能なポートを使用して登録するWindowsサービスです。他の用途にも使用されます。
データの量はそれほど多くはありません。現時点では、ユーザー(パスワードハッシュ、権限、名前、電子メールなど)をキャッシュするためだけに使用しています。これにより、データベースに対して行われる呼び出しの山が節約されます。
この方法に落とし穴があるかどうか、および/またはデータをキャッシュするためのより良い方法があるかどうか疑問に思いましたか?