EasyCaching用作本地缓存的实用小结

EasyCaching用作本地缓存的实用小结

使用内存

<PackageReference Include="EasyCaching.InMemory" Version="1.9.2" />
services.AddEasyCaching(options =>
{
		options.UseInMemory("m0"); // 默认 InMemory
});

使用Sqlite

<PackageReference Include="EasyCaching.SQLite" Version="1.9.2" />
services.AddEasyCaching(option =>
{
	option.UseSQLite(config =>
		{
			config.DBConfig = new SQLiteDBOptions { 
				FileName = "my.db",
				CacheMode = SqliteCacheMode.Default,
				OpenMode = SqliteOpenMode.ReadWriteCreate
			};
		},"m1"); // 默认 DefaultSQLite
});

使用LiteDB

<PackageReference Include="EasyCaching.LiteDB" Version="1.9.2" />
services.AddEasyCaching(option => 
{
	option.UseLiteDB(config =>
	{
		config.DBConfig = new LiteDBDBOptions { FileName = "s1.ldb" };
	},"m2");  // 默认 DefaultLiteDB
});

扩展方法

internal static class ServiceProviderExtention
{
    public static IEasyCachingProvider GetCaching(this IServiceProvider serviceProvider)
    {
        var factory = serviceProvider.GetRequiredService<IEasyCachingProviderFactory>();
        return factory.GetCachingProvider("m0");  // m1, m2
    }
}

实用例子

#region 同步方法

cache.Set("key", "value", TimeSpan.FromMinutes(1));
var res = cache.Get("key", () => "value456", TimeSpan.FromMinutes(1));
var res = cache.Get<string>("key");
cache.Remove("key");

#endregion 同步方法


#region 异步方法

await cache.SetAsync("key", "value", TimeSpan.FromMinutes(1));   
var res = await cache.GetAsync("key",async () => await Task.FromResult("value456"), TimeSpan.FromMinutes(1));   
var res = await cache.GetAsync<string>("key");
await cache.RemoveAsync("key");

#endregion 异步方法


#region 按前缀删除

cache.RemoveByPrefix("prefix");
await cache.RemoveByPrefixAsync("prefix");

#endregion 按前缀删除
```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值