ASP.NET Core中使用EasyCaching作为缓存抽象层
Posted dotNET跨平台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET Core中使用EasyCaching作为缓存抽象层相关的知识,希望对你有一定的参考价值。
简介
做后端开发,缓存应该是天天在用,很多时候我们的做法是写个帮助类,然后用到的时候调用一下。这种只适合简单层次的应用;一旦涉及到接口实现调整之类的,这种强耦合的做法很不合适。有些其他的功能又要去重复造轮子。下面我们介绍下EasyCaching。
github地址
EasyCaching 是一个开源缓存库,包含缓存的基本用法和一些高级用法,可以帮助我们更轻松地处理缓存!
主要功能
统一的抽象缓存接口
多种常用的缓存Provider(InMemory,Redis,Memcached,SQLite)
为分布式缓存的数据序列化提供了多种选择
二级缓存
缓存的AOP操作(able, put,evict)
多实例支持
支持Diagnostics
Redis的特殊Provider
EasyCaching.Redis 是一个基于EasyCaching.Core和StackExchange.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 特性提供者的类型。
如果您想使用此功能提供程序,只需调用IRedisCachingProvider
replace 即可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 ...
以上是关于ASP.NET Core中使用EasyCaching作为缓存抽象层的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core中的缓存[1]:如何在一个ASP.NET Core应用中使用缓存
ASP.NET Core 动作结果 - ASP.NET Core 基础教程 - 简单教程,简单编程
在 ASP.NET Core 6.0 中使用 Serilog
ASP.NET Core 1.0 中使用 Swagger 生成文档
ASP.NET Core Web 应用程序系列- 在ASP.NET Core中使用Autofac替换自带DI进行批量依赖注入(MVC当中应用)