中 | EN
当前提供了多级缓存的能力,它是由内存缓存与分布式缓存构成
IMultilevelCacheClientFactory
: 多级缓存工厂,用于创建IDistributedCacheClient
(Singleton)IDistributedCacheClient
: 多级缓存客户端 (Singleton)
用例:
Install-Package Masa.Contrib.Caching.Distributed.StackExchangeRedis //用于提供分布式缓存能力,这里以Redis为例
Install-Package Masa.Contrib.Caching.MultilevelCache
- 配置
appsettings.json
{
// Redis分布式缓存配置
"RedisConfig": {
"Servers": [
{
"Host": "localhost",
"Port": 6379
}
],
"DefaultDatabase": 3
},
// 多级缓存全局配置,非必填
"MultilevelCache": {
"SubscribeKeyPrefix": "masa",//默认订阅方key前缀,用于拼接channel
"SubscribeKeyType": 3, //默认订阅方key的类型,默认ValueTypeFullNameAndKey,用于拼接channel
"CacheEntryOptions": {
"AbsoluteExpirationRelativeToNow": "00:00:30",//绝对过期时长(距当前时间)
"SlidingExpiration": "00:00:50"//滑动过期时长(距当前时间)
}
}
}
- 添加多级缓存
builder.Services.AddMultilevelCache(distributedCacheOptions =>
{
distributedCacheOptions.UseStackExchangeRedisCache();
});
- 从DI获取
IMultilevelCacheClient
string key = "test_1";
multilevelCacheClient.Set(key, "test_content");
- 添加多级缓存
var redisConfigurationOptions = new RedisConfigurationOptions()
{
DefaultDatabase = 1,
Servers = new List<RedisServerOptions>()
{
new("localhost", 6379)
}
};
builder.Services
.AddMultilevelCache(
distributedCacheOptions => distributedCacheOptions.UseStackExchangeRedisCache(redisConfigurationOptions),
new MultilevelCacheOptions()
{
SubscribeKeyPrefix = "masa",
SubscribeKeyType = SubscribeKeyType.ValueTypeFullNameAndKey
});
- 从DI获取
IMultilevelCacheClient
,并使用相应的方法
string key = "test_1";
multilevelCacheClient.Set(key, "test_content");