Net7引入Redis作为缓存
TerraMours框架引入Redis作为缓存
nuget包:Microsoft.Extensions.Caching.StackExchangeRedis
nuget地址:https://www.nuget.org/packages/StackExchange.Redis
如何使用:
docker 安装redis,这种方式仅供开发测试使用,没有设置任何安全措施。
docker pull redis
docker run --restart unless-stopped --name redis -p 6379:6379 -d redis
安装成功可以用portainer查看或者docker ps查看
用工具连接redis
由于是本机,什么都不用填,填写个连接名就行
连接成功如图:
代码:
先安装Nuget包:Microsoft.Extensions.Caching.StackExchangeRedis
Program代码
//redis 缓存
builder.Services.AddStackExchangeRedisCache(options =>
{
options.Configuration = sysSettings.connection.RedisHost;
options.InstanceName = sysSettings.connection.RedisInstanceName;
});
builder.Services.AddScoped<IDistributedCacheHelper, DistributedCacheHelper>();
appsettings.json配置添加
"RedisHost": "localhost",
"RedisInstanceName": "terramours_"
使用Redis缓存
建议以每个表也就是单个Service或者说domain为key,设置他的数据
比如user,则是
key:“terramours_user”,value "List<User> users"
//这个过去或者新增缓存
await _helper.GetOrCreateAsync("test", async e => "测试");
//如果有这个key ,那么只是单纯的get,所以当数据库有变化的时候,需要remove对应的key的缓存,然后重新设置新的缓存
var res1 = await _helper.GetOrCreateAsync("test", async e => userReq.UserAccount);
注意
当数据库有变化的时候,需要remove对应的key的缓存,然后重新设置新的缓存
TerraMours源码地址:https://github.com/firstsaofan/TerraMours