ASP.NET Core中使用EasyCaching作为缓存抽象层

目录

简介

主要功能

如何使用

基本用法

1.通过Nuget安装包

2. Startup 类中的配置

3.调用IEasyCachingProvider

4. Redis 功能提供者


简介

做后端开发,缓存应该是天天在用,很多时候我们的做法是写个帮助类,然后用到的时候调用一下。这种只适合简单层次的应用;一旦涉及到接口实现调整之类的,这种强耦合的做法很不合适。有些其他的功能又要去重复造轮子。下面我们介绍下EasyCaching。

github地址

EasyCaching 是一个开源缓存库,包含缓存的基本用法和一些高级用法,可以帮助我们更轻松地处理缓存!

主要功能

  1. 统一的抽象缓存接口

  2. 多种常用的缓存Provider(InMemory,Redis,Memcached,SQLite)

  3. 为分布式缓存的数据序列化提供了多种选择

  4. 二级缓存

  5. 缓存的AOP操作(able, put,evict)

  6. 多实例支持

  7. 支持Diagnostics

  8. Redis的特殊Provider

EasyCaching.Redis 是一个基于EasyCaching.CoreStackExchange.Redis的 redis 缓存库。

当你使用这个库时,这意味着你将处理你的 redis 服务器的数据。像往常一样,我们将它用作分布式缓存。

如何使用

基本用法

1.通过Nuget安装包

Install-Package EasyCaching.Redis复制代码

2. Startup 类中的配置

有两种方法可以配置缓存提供程序。

通过 C# 代码:

public class Startup{    //...

    public void ConfigureServices(IServiceCollection services)
    {        //other services.

        //Important step for Redis Caching       
        services.AddEasyCaching(option =>
        {
            option.UseRedis(config => 
            {
                config.DBConfig.Endpoints.Add(new ServerEndPoint("127.0.0.1", 6379));
            }, "redis1");
        });
    }
}复制代码

或者,您可以将配置存储在appsettings.json.

public class Startup{    //...

    public void ConfigureServices(IServiceCollection services)
    {        //other services.

        //Important step for Redis Caching
        services.AddEasyCaching(option =>
        {
            option.UseRedis(Configuration, "myredisname");
        });
    }
}复制代码

appsettings.json例子:

"easycaching": {    "redis": {        "MaxRdSecond": 120,        "EnableLogging": false,        "LockMs": 5000,        "SleepMs": 300,        "dbconfig": {            "Password": null,            "IsSsl": false,            "SslHost": null,            "ConnectionTimeout": 5000,            "AllowAdmin": true,            "Endpoints": [
                {                    "Host": "localhost",                    "Port": 6739
                }
            ],            "Database": 0
        }
    }
}复制代码

3.调用IEasyCachingProvider

以下代码展示了如何在 ASP.NET Core Web API 中使用 EasyCachingProvider。

[Route("api/[controller]")]public class ValuesController : Controller{    private readonly IEasyCachingProvider _provider;    public ValuesController(IEasyCachingProvider provider)
    {        this._provider = provider;
    }

    [HttpGet]    public string Get()
    {        //Remove
        _provider.Remove("demo");        //Set
        _provider.Set("demo", "123", TimeSpan.FromMinutes(1));        //others ...
    }
}复制代码

4. Redis 功能提供者

Redis还有很多其他的数据类型,比如Hash、List等。

EasyCaching.Redis 也支持那些命名为 redis 特性提供者的类型。

如果您想使用此功能提供程序,只需调用IRedisCachingProviderreplace 即可IEasyCachingProvider

[Route("api/[controller]")]public class ValuesController : Controller{    private readonly IRedisCachingProvider _provider;    public ValuesController(IRedisCachingProvider provider)
    {        this._provider = provider;
    }

    [HttpGet]    public string Get()
    {        // HMSet
        var res = _provider.HMSet(cacheKey, new Dictionary<string, string>
        {
            {"a1","v1"},{"a2","v2"}
        });        //others ...
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值