私の要件は、Java ベースの Web アプリケーションで複数のコンシューマーと単一のプロデューサーをサポートする固定サイズのキャッシュを維持することです。私のデータは次のようなものです:
キー 1、キー 2、値
123、abc、リスト1
123、定義、リスト 2
234、xyz、リスト3
クライアントまたはコンシューマーは、key1 と key2 に基づいてこのキャッシュを照会します。そのため、複数のコンシューマが同じキー 1 と 2 に対して同時にキャッシュにアクセスしようとすると、すべてのコンシューマが応答としてキャッシュから同じデータを取得する必要があります。
使用するのに最適なデータ構造を探しています。また、キャッシュ サイズは固定されているため、キャッシュがいっぱいの場合、レコードを挿入する前にプロデューサが最初の要素を削除する必要があることに注意してください。
現在、マップ内のマップを使用しています。つまり、キー 1 は外側のマップ用で、キー 2 は内側のマップ用です。しかし、効率が悪いと感じる情報を得るには、それを調べる必要があります。
なにか提案を?