私はいくつかの設計を行っています (当初は Java 用) (ただし、将来的には .NET に拡張される可能性があります)。「キャッシュ」と「プール」という用語の間で混乱しています。
私が見る限り、主な違いは何が含まれているのですか?
どちらをいつ使用すべきかについてのガイドラインはありますか?
では、多くの記事で言及されている「キャッシュ プール」とは何でしょうか。
どちらもオブジェクトを保持することを指していますが、かなり異なっており、互換性があるとは言えません。
キャッシュ- 頻繁に使用される値を保存します。これは通常、検索や作成が重要であるためです。たとえば、データベースのルックアップ テーブルが頻繁に使用される場合や、ディスク上のファイルから値が読み取られる場合は、メモリ内に保持して定期的に更新する方が効率的です。
キャッシュは、キャッシュ内のオブジェクトの有効期間のみを管理しますが、キャッシュに保持されるものにセマンティクスを課すことはありません。キャッシュもアイテムを作成せず、オブジェクトを格納するだけです。
プール- プール自体によって管理されるリソースのグループを表す用語。例: (データベース) 接続プール - 接続が必要な場合はプールから取得し、終了するとプールに戻します。
プール自体は、プールされたオブジェクトの作成と破棄を処理し、一度に作成できるオブジェクトの数を管理します。
キャッシュ プール- ほとんどの場合、存在する (独立した?) キャッシュの数を示しているようです。たとえば、asp.net アプリケーションには、アプリケーション ドメインごとに 1 つのキャッシュがあります (キャッシュは asp.net アプリケーション間で共有されません)。文字通りキャッシュのプールですが、この用語はめったに使用されないようです。
キャッシュは一般に、コストのかかる操作の結果を保存するため、またはそれらの結果の取得を最適化するためのものです。
プールは、1 つ以上のアプリケーションが使用できるが、これらのリソースの数を制御できるリソースのコレクションを表すために使用されます。
私は「キャッシュプール」という用語に出くわしたことはありませんが、簡単なレビューに基づいて、キャッシュのプール、またはプールによって管理されるキャッシュのコレクションに使用されるようです。
私は Ken に同意します。少し追加すると、リソースの一部またはすべてがいつでも削除されても、キャッシュはシステムに影響しません。データはすべて簡単に再生/再取得可能であり、再生は通常自動的に行われます。 (キャッシュに何かを要求します。キャッシュに存在しない場合、キャッシュはそれを作成し、保存して返します)。
「プール」は何でもかまいませんが、プール オブジェクトが古いという理由だけで削除するわけではありません。通常、プールには、一部のリソースの一意の、おそらく再現不可能なインスタンスが含まれています。