我已经尝试了解如何实现我的逻辑来缓存通过一个操作方法显示的多个页面,它与初始页面可以正常工作,但是当我尝试检索后续页面时,它不会从中提取数据服务器,很明显,它使用相同的密钥从缓存中获取数据,并且直到到期时间过去才打到后端API服务器。无论单击不同页面,它都会显示同一页面。代码如下:-
private readonly IMemoryCache _cache;
private readonly WebAPIService _service;
private static readonly string _slugKey = "slug";
private static readonly TimeSpan _defaultCacheDuration = TimeSpan.FromMinutes(5);
public CachePolicy(IMemoryCache cache, WebAPIService service)
{
_cache = cache;
_service = service;
}
public async Task<DisplayDto> GetPostBySlug(string slug)
{
return await _cache.GetOrCreateAsync(_slugKey, async entry =>
{
entry.SlidingExpiration = _defaultCacheDuration;
return await _service.GetPostBySlug(slug);
});
}