背景:凌晨两点,隔壁楼情侣闹得欢,本单身狗不服气,决定总结一下今晚添加到项目的redis。
我的使用场景:asp.net core web api+vue3的项目中数据库的权限表是最经常读取的,所以权限表中的数据放到redis中最为合适
第一步:安装非常简单:到github把安装包下了,倒数第一个和倒数第二个exe点开,这样就ok啦
第二步:到NuGet中把StackExchange.Redis下过来
第三步:到appsettings.json中添加上配置RedisConnection,初始的ip和端口都是这个直接用
第四步:Program.cs中注册Redis服务
builder.Host.ConfigureContainer<ContainerBuilder>(container =>
{
// 注册 Redis 连接
container.RegisterInstance(ConnectionMultiplexer.Connect(builder.Configuration.GetConnectionString("RedisConnection")))
.As<IConnectionMultiplexer>()
.SingleInstance();
// 注册 IDatabase 接口,用于与 Redis 进行交互
container.Register(context => context.Resolve<IConnectionMultiplexer>().GetDatabase())
.As<IDatabase>()
.SingleInstance();
});
接下来就可以直接使用了
第五步:将数据存入redis
private async Task SaveUserToRedis(string uid)
{
if (uid == null) return;
Permiss permiss = await _permissService.GetPermiss(uid);
string key = "permiss:";
string serializedPermiss = JsonConvert.SerializeObject(permiss); ;
var expiration = TimeSpan.FromMinutes(30); // 30分钟过期时间
// 将用户信息存储到 Redis
await _redisDatabase.StringSetAsync(key, serializedPermiss, expiration);
}
一共三个变量:key、value、时间;像上面存储的是对象,那就序列化后再存入redis
这个时候就可以通过redis-cli窗口读取自己存的值了
最后一步就是取出来了
string key = "permiss:";
string serializedPermiss = _redisDatabase.StringGet(key);
Permiss permissRedis = JsonConvert.DeserializeObject<Permiss>(serializedPermiss);
读出结果,反序列化一下就是存入的对象了
写完,隔壁楼情侣也不闹了