При разработке проектов кэш часто используется для кэширования некоторых данных в соответствии с бизнес-потребностями или для кэширования содержимого запросов базы данных, чтобы снизить нагрузку на базу данных.
Часто используемые кэши памяти: System.Runtime.Caching / MemoryCache и Microsoft.Extensions.Caching.Memory
У Microsoft есть 2 решения, два разных пакета NuGet для кэширования, оба отличные, по рекомендации Microsoft, предпочитаем использовать Microsoft.Extensions.Caching.Memory, потому что он лучше интегрируется с Asp .NET core. Его легко внедрить в механизм инжекции зависимостей Asp .NET Core.
В этой статье используется Microsoft.Extensions.Caching.Memory для кэширования данных, сокращённо MSCache, и Microsoft вводит:Вход по гиперссылке виден.
Примечание: Microsoft.Extensions.Caching.Memory безопасна для потоков
Что может сделать MSCache?
- Абсолютная истёкшая поддержка
- Поддержка скользящего истечения (укажите время, TimeSpan, отложенное, если кэшированное время в указанное время, иначе оно истечёт)
- Истёкший повторный вызов
- Кастомный срок годности
Настройки кэша MemoryCacheEntryOptions
- Абсолютная истреваемостьАбсолютное время истечения, если null, условие недействительно
- AbsoluteExpirationRelativeToNowАбсолютное время истечения относительно текущего времени (с использованием TimeSpan) является null condition недействительным
- СкольжениеИстечениеСдвините время истечения срока действия
- ExpirationTokensДоступно для настройки срока действия кэша
- После выселенияОбратные отзывыОбратные вызовы инвалидации кэша
- ПриоритетПриоритет элемента кэша (порядок, в котором кэш полностью очищается, когда кэш заполнен)
- РазмерПредставляет размер кэшированных данных, который обычно равен нулю в кэше внутри памяти
Начните с MSCache
Проект ASP.NET Core MVC Установка команды Nuget:
При использовании делайте простые пакеты.
Интерфейс:
Реализация:
Конфигурация инъекции зависимостей одиночная
Тесты используют MSCache
Запишите данные с использованием относительного срока действия и скользящего срока и проведите тест чтения с кодом следующим образом.
Код контроллера:
Запишите кэшированные данные:
Читайте кэшированные данные:
Доступ:Вход по гиперссылке виден.После установки относительного срока действия и скользящего срока действия получите доступ к следующему формату: https://localhost:44370/Home/Get Получите кэшированные данные следующим образом:
В течение 30 секунд я несколько раз перешёл по ссылке, чтобы прочитать кэш и обнаружил, что абсолютный срок действия полностью истёк через 30 секунд, но я всё ещё мог его прочитать после сдвига, как показано на рисунке ниже:
(Конец)
|