首页 > 其他分享 >EasyCaching的使用

EasyCaching的使用

时间:2023-08-09 17:02:43浏览次数:36  
标签:cache EasyCaching default 使用 factory provider config

简介

一个用来做Cache缓存的开源库。

官方网址:https://github.com/dotnetcore/EasyCaching

安装

安装对应的Nuget包,包的类型很多,其它包类型访问上面的网址查看。

Install-Package EasyCaching.InMemory
Install-Package EasyCaching.Redis
Install-Package EasyCaching.SQLite
Install-Package EasyCaching.Memcached

配置

public class Startup
{
    //...
    
    public void ConfigureServices(IServiceCollection services)
    {
        //configuration
        services.AddEasyCaching(options => 
        {
            //use memory cache that named default
            options.UseInMemory("default");

            // // use memory cache with your own configuration
            // options.UseInMemory(config => 
            // {
            //     config.DBConfig = new InMemoryCachingOptions
            //     {
            //         // scan time, default value is 60s
            //         ExpirationScanFrequency = 60, 
            //         // total count of cache items, default value is 10000
            //         SizeLimit = 100 
            //     };
            //     // the max random second will be added to cache's expiration, default value is 120
            //     config.MaxRdSecond = 120;
            //     // whether enable logging, default is false
            //     config.EnableLogging = false;
            //     // mutex key's alive time(ms), default is 5000
            //     config.LockMs = 5000;
            //     // when mutex key alive, it will sleep some time, default is 300
            //     config.SleepMs = 300;
            // }, "m2");

            //use redis cache that named redis1
            options.UseRedis(config => 
            {
                config.DBConfig.Endpoints.Add(new ServerEndPoint("127.0.0.1", 6379));
            }, "redis1")
            .WithMessagePack()//with messagepack serialization
            ;            
        });    
    }    
}

使用

[Route("api/[controller]")]
public class ValuesController : Controller
{
    // //when using single provider
    // private readonly IEasyCachingProvider _provider;
    //when using multiple provider
    private readonly IEasyCachingProviderFactory _factory;

    public ValuesController(
        //IEasyCachingProvider provider, 
        IEasyCachingProviderFactory factory
        )
    {
        //this._provider = provider;
        this._factory = factory;
    }

    [HttpGet]
    public string Handle()
    {
        //var provider = _provider;
        //get the provider from factory with its name
        var provider = _factory.GetCachingProvider("redis1");    

        //Set
        provider.Set("demo", "123", TimeSpan.FromMinutes(1));
            
        //Set Async
        await provider.SetAsync("demo", "123", TimeSpan.FromMinutes(1));                  
    }
}

标签:cache,EasyCaching,default,使用,factory,provider,config
From: https://www.cnblogs.com/wzwyc/p/17616785.html

相关文章

  • - 推导分页的原理 - 使用分页类(器) - cookie和session的介绍、token - Django操作coo
    推导分页原理分页:当我们要展示的数据特别多的时候,一页展示不完,这个时候我们需要把要展示的数据分成多页展示分页中需要的几个参数:1.总数据有多少条2.每页展示多少条数据(自己规定的20)3.一共展示多少页4.总页数=总数据量/每页展示多少条数据5.当前第几页(前端传过去的)......
  • 在使用时序数据库 TDengine 进行 SQL 查询时,这些问题需要注意
    小T导读:尽管时序数据处理的特点是以写操作为主,读操作为辅,但查询需求也不容忽视。为方便用户上手,时序数据库(TimeSeriesDatabase)TDengine 采用SQL作为查询语言,主要查询功能包括单列及多列数据查询、数值列及聚合结果的四则运算、时间戳对齐的连接查询操作等,本文将就部分查询......
  • Django博客开发教程:使用富文本编辑器添加数据
    在Djangoadmin后台添加数据的时候,文章内容文本框想发布一篇图文并茂的文章需就得手写Html代码,这十分吃力,也没法上传图片和文件。这显然不是我等高大上程序猿想要的。为提升效率,我们可以使用富文本编辑器添加数据。支持Django的富文本编辑器很多,这里我推荐使用DjangoUeditor,Uedi......
  • 使用C#配合modbus协议的16进制代码生成crc16校验码的计算方法
    前言在网上也是查看了很多关于crc16校验的文章,但是好像都是对于有基础的人看的,我当时拿起直接使用,发现行不通,这对于零基础的不是很友好,所以决定贡献一篇,哈哈哈哈~~~publicuintCalcCRC16(stringhexCommand){byte[]pBuf=HexStringToByteArray(......
  • xxljob配置及基本使用
    以byteeasy项目为例集成xxl-job两个开源项目git地址:[email protected]:xuxueli0323/[email protected]:hbuzc/byteeasy.git 1、导入数据库xxljob的doc文件下的db文件中包含sql文件,复制到navicat执行。2、部署xxl-job项目将打好的xxl-job项目jar包放到新文件夹下;......
  • 使用clayui制作界面的整套工程流程
              今天介绍一下利用clayui制作界面的工作流程,包含以下内容:1.  使用clayui编辑系统制作一个简单的界面,          2.  添加鼠标消息响应,并制作对应的互动动画效果          3.  输出界面文件,皮肤文件,布局文件          ......
  • 使用kettle将excel中的数据导入数据库时,数字带小数点0的问题
    1.在excel中调整数据格式选择【数据】-【分列】-【分隔符】,点击下一步  2、选择Tab键 3、选择【文本】,点击完成 ......
  • 在vue2 v-bind中使用console.log
    <el-submenuv-for="(item,index)inmenuList":key="index":index="console.log(item.name)||item.name"> main.jsVue.prototype.console=console 参考:https://stackoverflow.com/questions/51......
  • Wordpress:如何使用Elementor给页面Button做跳转页面锚点定位?
    网站页面有的关键部分不一定在页面首屏,但是如果其它页面有时候需要做跳转,比如联系框,需要直接跳转到联系框的实际位置,在使用Elementor插件的情况下,如何实现呢?前端技术告诉我们,要实现点击a标签或者按钮跳转到指定位置,可以使用id定位,并在跳转链接后加入#符号附带该ID即可如: ......
  • 《LYNUOJ使用简明教程》
    一:注册,登录二:选择团队并加入 三:进入团队开始训练四:进入题目页面选择合适的语言并粘贴代码右下角在线自测可以评测你在在线编译器上代码是否正确提交评测后左边或出现五:更多评测状态详情......