メモリマッピングは実行可能なアイデアですが、memcachedを使用することをお勧めします。これは別個のプロセスとして実行され、水平スケーリングを可能にし、最も要求の厳しいWebサイトのいくつかで試行およびテストされ、アクティブに展開されます。適切に実装されたmemcachedサーバーは、ディスクアクセスを大幅に減らすことができます。
また、インターネット上の言語を含む多くの言語のバインディングもあります。Javaのソリューションが必要だと思います(ほとんどのタグはその言語に関連しています)。インストールおよびその他の管理タスクについては、この記事をお読みください。また、開始できるコードサンプル(Java用)もあります。
擬似コードの用語では、たとえば、Moon.jpegのリクエストを受け取ったときに実行する必要があるのは、次のとおりです。
String key = md5_hash(Moon.jpeg); /* Or some other key generation mechanism */
IF key IN memcached
SUPPLY FROM memcached /* No disk access */
ELSE
READ Moon.jpeg FROM DISK
STORE IN memcached ASSOCIATED WITH key
SUPPLY
END
これは非常に大雑把なアルゴリズムです。キャッシュアルゴリズムの詳細については、このWikiの記事を参照してください。