私は、サードパーティの Web サービスからデータをインポートし、ユーザーが好みに応じてビューをカスタマイズおよびフィルタリングできるようにする、趣味関連のデータ ポータルとして使用される Web/モバイル アプリケーションを構築しています。外部から取得したデータは、ユーザーが編集することはできません。頻繁に変更されるほとんどの株価情報と考えることができますが、株価情報ではありません。これはカテゴリ (各カテゴリは米国の州) で編成されており、各カテゴリには平均で 500 行のデータがあり、それぞれにいくつかの属性しかありません。ただし、各ユーザーのビューにはさまざまなカテゴリが含まれる (データを取得する) 可能性が高くなります。
MySQL でこのデータを 10 分ごとに更新するバックエンド ジョブがあります。ただし、ユーザーがデータを取得したい場合、ディスク I/O のパフォーマンスと、このデータの性質、ダイナミクス、およびサイズを考慮すると、フロントエンド用の何らかの形式のメモリ内コンテナーに格納することが明らかに理にかなっています。 DB evert リクエストから読み取るのではなく、アプリケーションで使用します。つまり、キャッシュします。したがって、このジョブが実行されると、DB にデータを保存した後、フロント エンド サーバーが実行されている場合はメモリ ストアが更新されます。
私は Memcached や Redis などの製品に精通していますが、データ構造が非常に単純であるため、Glassfish 内の Singleton オブジェクトなど、より軽量な代替手段を使用することの長所と短所について疑問に思っていました。モバイルアプリ。
ありがとう