IDistributedCache предоставляется в качестве стандартного API для доступа к распределенным кешам из приложений ASP.NET.Предоставленный API-интерфейс очень прост, в основном он представляет кэш в виде контейнера пар ключ-значение, а DistributedCacheEntryOptions предоставляет параметры истечения срока действия для каждой записи.
Теперь, скажем, в одном приложении естьмножество различных типов данных для кэширования, некоторые из которых мы можем сгруппировать логически.Может быть, мы хотим, чтобы некоторые типы данных были сгруппированы, чтобы мы могли, например, выбрать удаление всех данных из кэша, не затрагивая другие типы данных, или, возможно, нам нужна возможность помещать некоторые типы данных в другой кластер кэша с высокой доступностью,или больше ресурсов для повышения производительности и т. д.
Учитывая это, я склоняюсь к наличию содержащего объекта, который содержит несколько экземпляров IDistributedCache, по одному для логической группировки.Учитывая, что это кажется обычным требованием, мне интересно, есть ли какой-нибудь стандартный способ достижения этого паттерна.Или, может быть, советом было бы поместить все в один кеш с составным ключом (например, groupName-key), хотя я бы предпочел не делать этого, так как считаю, что это ограничивает гибкость слоя кэширования.
Кроме того, я заметил, что API-интерфейс NCache предоставляет возможность произвольно назначать groupName и subGroupName для каждой записи в кэше, что, я думаю, в значительной степени то, что я хочу.Однако я предпочел бы кодировать против IDistributedCache (или аналогичного), чтобы обеспечить альтернативные реализации кэширования.
Возможно, другой вариант - создать собственный интерфейс для обеспечения абстракции, но тогда я не будуt выбор варианта использования готовых реализаций IDistributedCache (например, из NCache и Redis).