查看: 101|回复: 1

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

[复制链接]

2

主题

7

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2022-12-9 19:27:16 | 显示全部楼层 |阅读模式
简介
做后端开发,缓存应该是天天在用,很多时候我们的做法是写个帮助类,然后用到的时候调用一下。这种只适合简单层次的应用;一旦涉及到接口实现调整之类的,这种强耦合的做法很不合适。有些其他的功能又要去重复造轮子。下面我们介绍下EasyCaching。
github地址



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


  • 统一的抽象缓存接口
  • 多种常用的缓存Provider(InMemory,Redis,Memcached,SQLite)
  • 为分布式缓存的数据序列化提供了多种选择
  • 二级缓存
  • 缓存的AOP操作(able, put,evict)
  • 多实例支持
  • 支持Diagnostics
  • Redis的特殊Provider
EasyCaching.Redis 是一个基于EasyCaching.CoreStackExchange.Redis的 redis 缓存库。
当你使用这个库时,这意味着你将处理你的 redis 服务器的数据。像往常一样,我们将它用作分布式缓存。
大家能看到这里,感谢

分享一组录制的C#零基础教程。我们喜欢做这样的分享,它足够的基础,对新手友好。如果需要的话,就来免费领取吧!



快来领取吧


资料免费自取:

由于内容过多不便呈现,需要视频教程和配套源码的小伙伴,可点击这里,添加我知乎主页个人说明处号码 免费分享
也可直接点击下方卡片:点击后可自动复制威芯号,并跳转到威芯。得辛苦大家自行搜索威芯号添加。内容已做打包,添加后直接发送注意查收!
如何使用

基本用法

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

以下代码展示了如何在 http://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 ...
    }
}文章转载自后端Q。
学习离不开答疑交流,跳槽高薪离不开信息分享,这里给大家推荐个学习群,里面有大佬技术答疑、有直播技术分享、有资料定期分享、还有高薪内推资源,强烈建议大家进群一起学习交流,来年拿高薪。也欢迎大家加入最活跃的编程技术交流群 (.NET/WPF )进学习群,一起学习进步!
回复

使用道具 举报

2

主题

10

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 6 天前 | 显示全部楼层
呵呵。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表