美文网首页
.net core 使用 redis分布式缓存

.net core 使用 redis分布式缓存

作者: _sands | 来源:发表于2019-08-29 15:33 被阅读0次

    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分布式缓存

          本文链接:https://www.haomeiwen.com/subject/dsbuzqtx.html