Рекомендации по / различия между кеш / пул / кеш пул - PullRequest
2 голосов
/ 14 ноября 2008

Я занимаюсь каким-то дизайном (изначально для Java) (но может в дальнейшем распространиться на .NET?), И я путаюсь между терминами "кеш" и "пул".

Насколько я вижу, главное отличие заключается в том, что в них содержится?

Какие-либо рекомендации относительно того, когда следует использовать?

А что такое "пул кеша", о котором говорится в ряде статей?

Ответы [ 3 ]

5 голосов
/ 14 ноября 2008

Хотя они оба относятся к хранению объектов, они совершенно разные, и я бы не сказал, что они взаимозаменяемы.

Кэш - хранить часто используемые значения, как правило, потому что поиск и / или создание нетривиально. например если таблица поиска из базы данных часто используется или значения считываются из файла на диске, более эффективно хранить его в памяти и периодически обновлять.

Кэш только управляет временем жизни объекта в кеше, но не накладывает семантику на то, что хранится в кеше. Кэш также не создает элементы, а просто хранит объекты.

Пул - термин, обозначающий группу ресурсов, которыми управляет сам пул. например (База данных) Пул соединений - когда требуется соединение, оно получается из пула, а по окончании возвращается в пул.

Сам пул обрабатывает создание и уничтожение объединенных объектов и управляет количеством объектов, которые могут быть созданы одновременно.

Кэш-пул - в большинстве случаев описывается количество (независимых?) Кешей, которые существуют. Например. Приложение asp.net имеет 1 кэш на домен приложения (кэш не используется совместно приложениями asp.net). Буквально пул кэшей, хотя этот термин, по-видимому, используется редко.

1 голос
/ 14 ноября 2008

Кэш обычно предназначен для сохранения результатов дорогостоящих операций или оптимизации их получения.

Пул используется для описания набора ресурсов, доступных для использования одним или несколькими приложениями, но позволяющего контролировать количество этих ресурсов.

Я не сталкивался с термином «пул кеша» - но на основании быстрого обзора он, по-видимому, используется для пула из кеша с или набора кэши, управляемые пулом.

0 голосов
/ 14 ноября 2008

Я согласен с Кеном, и добавлю немного - кэш не будет влиять на вашу систему, если некоторые или все ресурсы будут удалены из него в любое время - все данные легко воспроизводимы / повторно доступны, и воспроизведение обычно автоматический (вы запрашиваете кеш для чего-либо, если он не существует в кеш-памяти, кеш создает его, сохраняет и возвращает вам).

«Пул» может быть чем угодно, но вы не просто удаляете объекты пула, потому что они старые - обычно пул содержит уникальные, возможно, невоспроизводимые экземпляры какого-либо ресурса.

...