redis大多數(shù)場景是用來做緩存的,得益于它的分布式特性,
- 可以部署redis集群,來解決高可用,可擴(kuò)展性;
- 同時(shí)由于數(shù)據(jù)存儲(chǔ)在內(nèi)存中,所以讀取的速度很快;
- 可以定期對數(shù)據(jù)進(jìn)行持久化到磁盤中,保證數(shù)據(jù)不丟失;
- 支持存儲(chǔ)豐富的數(shù)據(jù)結(jié)構(gòu):string、hash、list、set、基于list還能做成queue結(jié)構(gòu),能使用的場景非常豐富,
在.net core中應(yīng)用
- 使用自帶的Redis分布式緩存
.netcore 中使用 Microsoft.Extensions.Caching.Redis 中的 DistributedRedisCache就可以了
setup.cs
services.AddDistributedRedisCache(options =>
{
//用于連接Redis的配置
//RedisConnectionString="1270.0.0.1:6379,password=xxxxx"
options.Configuration = Configuration.GetConnectionString("RedisConnectionString");
options.InstanceName = "RedisCache";
});
application 項(xiàng)目中
using Microsoft.Extensions.Caching.Distributed;
public class SmsAppService
{
private readonly IDistributedCache _distributedCache;
public SmsAppService(IDistributedCache distributedCache)
{
}
public void sample()
{
var cache=_distributedCache.GetString("cache:name");
//寫入緩存 有效期2分鐘
_distributedCache.SetString("cache:name","cache:value", new DistributedCacheEntryOptions { AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(2) });
}
}
- 直接使用StackExchange.Redis客戶端
- 引入 nuget包 StackExchange.Redis,直接安裝;
- 不用二次封裝 直接在項(xiàng)目中使用(redis客戶端的API已經(jīng)寫得非常好用了,沒必要去寫什么RedisHelper類進(jìn)行過度封裝,除非說要在使用的地方加異常處理、監(jiān)控,可以加個(gè)創(chuàng)建客戶端的代理類)
eg
using StackExchange.Redis;
void Sample()
{
var db= ConnectionMultiplexer.Connect("127.0.0.1:6379").GetDatabase();
string cache=db.StringGet("cache:name");
}