Skip to content

IMemoryCache

约 453 字大约 2 分钟

NETcore

2024-01-16

基本函数

//基本函数
CreateEntry(Object)  //在缓存中创建或覆盖条目。

GetCurrentStatistics()  //获取缓存统计信息的快照(如果可用)。

Remove(Object)  //删除与给定键关联的对象。

TryGetValue(Object, Object)  //获取与此键关联的项(如果存在)。




//扩展函数
Get(IMemoryCache, Object) //获取与此键关联的值(如果存在)。

Get<TItem>(IMemoryCache, Object) //获取与此键关联的值(如果存在)。

//获取与此键关联的值(如果存在),或者使用提供的键和给定工厂的值(如果未找到该键)生成新条目。
GetOrCreate<TItem>(IMemoryCache, Object, Func<ICacheEntry,TItem>)

//异步获取与此键关联的值(如果存在),或者使用提供的键和给定工厂的值(如果未找到该键)生成新条目。
GetOrCreateAsync<TItem>(IMemoryCache, Object, Func<ICacheEntry,Task<TItem>>) 

Set<TItem>(IMemoryCache, Object, TItem) //将值与 IMemoryCache 中的指定键相关联。

//将缓存条目与指定的键相关联,并将现有 MemoryCacheEntryOptions 的值应用于创建的条目。
Set<TItem>(IMemoryCache, Object, TItem, MemoryCacheEntryOptions) 

//将缓存条目与指定的密钥相关联,该密钥将在 IChangeToken 过期时过期。
Set<TItem>(IMemoryCache, Object, TItem, IChangeToken) 

//创建或覆盖缓存中的指定条目,并设置具有绝对到期日期的值。
Set<TItem>(IMemoryCache, Object, TItem, DateTimeOffset) 

//将缓存条目与指定的密钥相关联,该密钥将在指定的持续时间后过期。
Set<TItem>(IMemoryCache, Object, TItem, TimeSpan) 

//尝试获取与指定键关联的值。
TryGetValue<TItem>(IMemoryCache, Object, TItem)

注入


protected override void RegisterTypes(IContainerRegistry containerRegistry) 
{ 
	
	
	//  IMemoryCache  Microsoft.Extensions.Caching.Memory

	     // 注册内存缓存选项
     containerRegistry.RegisterSingleton<IOptions<MemoryCacheOptions>>(provider =>
     {
         return new MemoryCacheOptions
         {
             ExpirationScanFrequency = TimeSpan.FromMinutes(5),  //设置缓存过期清理扫描间隔
         };
     });
	 // 注册内存缓存服务
	 containerRegistry.RegisterSingleton<IMemoryCache, MemoryCache>();
}