Несколько экземпляров MemoryCache в .NET Core - PullRequest
0 голосов
/ 02 октября 2019

У нас есть два типа данных, которые нам необходимо кэшировать с помощью MemoryCache.

  1. Жетон безопасности
  2. Книга (например)

Мы неНе нужно устанавливать SizeLimit в кэше токенов безопасности, так как это будет означать, что каждая запись в кэше должна будет указывать размер в соответствии с .NET Core doco . Это связано с тем, что маркеры безопасности вставляются скомпилированным типом nuget, который мы не можем контролировать.

Так что имеет смысл создать еще один экземпляр MemoryCache для хранения только элементов Book, чтобы мы могли установить размерограничение и размер элемента при добавлении книги в кэш.

Кроме того, документация .NET Core предполагает, что разработчикам необходимо управлять пределом кэша.

Я прочитал конфликтующие сообщения здесь и здесь , которые поддерживают / отклоняют несколько экземпляров кэша памяти. Кроме того, они связаны с .NET, а не с .NET Core.

Поскольку в памяти .NET Core MemoryCache требуется управляемое разработчиком удаление кэшированных элементов, и, учитывая, что в кэше будет гораздо больше книг, чем токенов, мы 'склоняется к наличию 2 экземпляров MemoryCache.

  1. Маркер безопасности - без каких-либо ограничений по размеру, который имеет установщики в скомпилированных пакетах nuget
  2. Книги - с ограничениями по размеру, поскольку все установщики находятся в пределахкод проекта

Есть ли какие-либо возможные проблемы, с которыми мы можем столкнуться при наличии нескольких экземпляров MemoryCache в нашем веб-приложении .NET Core?

Мы используем .NETCore 2.1 с Microsoft.Extensions.Caching.Memory v = 2.1.2.0

...