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

由于是本机,什么都不用填,填写个连接名就行

image-20230515195110939

连接成功如图:

image-20230515195219403

代码:

先安装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);

image-20230515231427168

注意

当数据库有变化的时候,需要remove对应的key的缓存,然后重新设置新的缓存

TerraMours源码地址:https://github.com/firstsaofan/TerraMours