EasyCaching
EasyCaching
个人实例
1.安装包
EasyCaching.Core
EasyCaching.Redis
EasyCaching.Serialization.MessagePack
这里是以1.4.0为例
2.服务注册
netcore3.0,5.0是在startup,net6是在program设置
builder.Services.AddEasyCaching(option =>
{
option.UseRedis(t =>
{
//当需要连接redis集群时,只需要连接一个redis,其他会自动关联上,只需要 t.DBConfig.Endpoints.Add(new EasyCaching.Core.Configurations.ServerEndPoint("服务器地址",6379) )
//43.138.88.44服务器地址,6379端口
t.DBConfig.Endpoints.Add(new EasyCaching.Core.Configurations.ServerEndPoint("服务器地址",6379) );
//连接那个数据库
t.DBConfig.Database = 1;
//数据库密码
t.DBConfig.Password = "服务器密码";
});
});
3.使用
Person辅助类
public class Person
{
public string Name { get; set; }
public string Sex { get; set; }
}
ValuesController.cs
using EasyCaching.Core;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
namespace RedisTest.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
private readonly IRedisCachingProvider _redisCachingProvider;
public ValuesController(IRedisCachingProvider redisCachingProvider)
{
_redisCachingProvider = redisCachingProvider;
}
[HttpPost]
[Route("select-cache")]
public async Task<string> SelectCache()
{
return await _redisCachingProvider.StringGetAsync("name");
}
//这里在key不变的情况下,将上面的性别更改了
[HttpPost]
[Route("update-cache-sex")]
public async Task UpdateCache()
{
Person person = new Person
{
Name = "lty",
Sex = "woman"
};
await _redisCachingProvider.StringSetAsync("name", JsonConvert.SerializeObject(person),
TimeSpan.FromMinutes(1));
}
//这里在修改了缓存的key,尽管其他没有改变,但是会重新创建一个缓存
[HttpPost]
[Route("update-cache-sex-key")]
public async Task UpdateCacheSexKey()
{
Person person = new Person
{
Name = "lty",
Sex = "woman"
};
await _redisCachingProvider.StringSetAsync("womanname", JsonConvert.SerializeObject(person),
TimeSpan.FromMinutes(1));
}
[HttpPost]
[Route("remove-cache")]
public async Task RemoveCache()
{
Person person = new Person
{
Name = "lty",
Sex = "man"
};
await _redisCachingProvider.KeyDelAsync("name");
}
[HttpPost]
[Route("create-cache")]
public async Task CreateCache()
{
Person person = new Person
{
Name = "lty",
Sex = "man"
};
await _redisCachingProvider.StringSetAsync("name", JsonConvert.SerializeObject(person),
TimeSpan.FromMinutes(1));
}
}
}