프로젝트를 개발할 때, 캐시는 비즈니스 필요에 따라 일부 데이터를 캐시하거나, 데이터베이스 쿼리의 내용을 캐시하여 데이터베이스에 가해지는 부담을 줄이는 데 자주 사용됩니다.
일반적으로 사용되는 메모리 캐시: System.Runtime.Caching / MemoryCache 및 Microsoft.Extensions.Caching.Memory
마이크로소프트는 두 가지 솔루션, 두 가지 다른 NuGet 캐싱 패키지를 가지고 있는데, 마이크로소프트 추천에 따르면 모두 훌륭합니다. Microsoft.Extensions.Caching.Memory를 선호하는데, 이는 Asp .NET 코어와 더 잘 통합되기 때문입니다. 이 기능은 Asp .NET Core의 의존성 주입 메커니즘에 쉽게 주입할 수 있습니다.
이 글에서는 Microsoft.Extensions.Caching.Memory를 사용하여 데이터를 캐시하는데, 이를 MSCache로 약칭하며, 마이크로소프트는 다음과 같은 내용을 소개합니다:하이퍼링크 로그인이 보입니다.
참고: Microsoft.Extensions.Caching.Memory는 스레드 안전입니다
MSCache는 무엇을 할 수 있나요?
- 지원 기간이 완전히 만료되었습니다
- 슬라이딩 만료 지원 (시간 지정, TimeSpan, 지정된 시간 내에 캐시 시간이 있으면 연기, 그렇지 않으면 만료됨)
- 만료된 콜백
- 사용자 유통 만료
MemoryCacheEntryOptions 캐시 설정
- 절대 만료절대 만료 시간, null이면 조건은 무효입니다
- 절대 만료 관련성 현재에 대해현재 시간에 대한 절대 만료 시간(TimeSpan을 사용)은 null 조건으로 유효하지 않습니다
- 슬라이딩 만료유통기한 시간을 미끄러뜨려
- 만료토큰캐시 만료 맞춤 설정 가능
- 퇴거 후 콜백캐시 무효화 콜백
- 우선순위캐시 항목 우선순위 (캐시가 가득 찼을 때 완전히 정리되는 순서)
- 크기캐시 데이터의 크기를 나타내며, 일반적으로 메모리 내 캐시에서는 null입니다
MSCache로 시작하세요
프로젝트 ASP.NET 코어 MVC NuGet 명령 설치:
사용할 때는 간단한 패키지를 만드세요.
인터페이스:
구현:
의존성 주입 구성 싱글톤
테스트는 MSCache를 사용합니다
상대 만료와 슬라이딩 만료를 사용해 데이터를 쓰고, 코드로 읽기 테스트를 수행합니다.
컨트롤러 코드:
캐시된 데이터 쓰기:
캐시된 데이터 읽기:
접근성:하이퍼링크 로그인이 보입니다.상대 만료 및 슬라이딩 만료 설정 후, 다음과 같이 캐시 데이터를 얻습니다: https://localhost:44370/Home/Get
30초 이내에 여러 번 링크를 방문해 캐시를 읽었고, 절대 만료 기간이 30초 후에 완전히 만료되었지만, 만료 기간을 슬라이드한 후에도 읽을 수 있었습니다. 아래 그림에서 보입니다:
(끝)
|