.net core 使用 redis分布式缓存

redis大多数场景是用来做缓存的,得益于它的分布式特性,

  • 可以部署redis集群,来解决高可用,可扩展性;
  • 同时由于数据存储在内存中,所以读取的速度很快;
  • 可以定期对数据进行持久化到磁盘中,保证数据不丢失;
  • 支持存储丰富的数据结构:string、hash、list、set、基于list还能做成queue结构,能使用的场景非常丰富,

在.net core中应用

  1. 使用自带的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 项目中

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) });
   }
}

  1. 直接使用StackExchange.Redis客户端
  1. 引入 nuget包 StackExchange.Redis,直接安装;
  2. 不用二次封装 直接在项目中使用(redis客户端的API已经写得非常好用了,没必要去写什么RedisHelper类进行过度封装,除非说要在使用的地方加异常处理、监控,可以加个创建客户端的代理类)
    eg
using StackExchange.Redis;

void Sample()
{
  var db=  ConnectionMultiplexer.Connect("127.0.0.1:6379").GetDatabase();
  string cache=db.StringGet("cache:name");
}

你可能感兴趣的:(.net core 使用 redis分布式缓存)