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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 缓存是分布式系统中的重要组件,主要解决高并发,大数据场景下,热点数据访问的性能问题。提供高性能的数据快速访问。 一...
    Java架构师Carl阅读 4,927评论 0 23
  • 【转】缓存在分布式系统中的应用 缓存在分布式系统中的应用 摘要 缓存是分布式系统中的重要组件,主要解决高并发,大数...
    武汉苏乞儿阅读 4,324评论 0 10
  • 五种数据结构简介 Redis是使用C编写的,内部实现了一个struct结构体redisObject对象,通过结构体...
    彦帧阅读 11,864评论 0 14
  • 今天戴老师写了一篇文章,让我们提提点意见,戴老师写的有一句不老通顺,所以我给老师改了一句,戴老师还夸我了,最后我还...
    李明翰妈妈阅读 1,209评论 0 0
  • 你说你最爱口袋妖怪,是因为人生本来就是一场不断打怪升级的过程。 打怪意味着掉血,当然,你也可以选择逃跑。而每一次你...
    000a4b56e026阅读 1,202评论 0 0