ASP.NET Core中使用EasyCaching作為緩存抽象層

簡介

做后端開發,緩存應該是天天在用,很多時候我們的做法是寫個幫助類,然后用到的時候調用一下。這種只適合簡單層次的應用;一旦涉及到接口實現調整之類的,這種強耦合的做法很不合適。有些其他的功能又要去重復造輪子。下面我們介紹下EasyCaching。

github地址

outside_default.png

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 Cachingservices.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(){        // HMSetvar res = _provider.HMSet(cacheKey, new Dictionary<string, string>{{"a1","v1"},{"a2","v2"}});        //others ...}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/281936.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/281936.shtml
英文地址,請注明出處:http://en.pswp.cn/news/281936.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql qps如何查看_mysql狀態查看 QPS/TPS/緩存命中率查看

運行中的mysql狀態查看對正在運行的mysql進行監控&#xff0c;其中一個方式就是查看mysql運行狀態。(1)QPS(每秒Query量)QPS Questions(or Queries) / uptimemysql > show global status like Question%;mysql > show global status like uptime%;(2)TPS(每秒事務量…

visual studio開啟多核編譯方法

先按http://blog.csdn.net/acaiwlj/article/details/50240625的方法進行了VS多線程的啟動。 原本以為按以下步驟設置就OK了&#xff0c;但是編譯中無意間發些了一個warning&#xff1a;“/Gm”與多處理不兼容&#xff1b;忽略 /MP 開關&#xff01;&#xff01;&#xff01;&am…

聊聊storm nimbus的LeaderElector

為什么80%的碼農都做不了架構師&#xff1f;>>> 序 本文主要研究一下storm nimbus的LeaderElector Nimbus org/apache/storm/daemon/nimbus/Nimbus.java public static void main(String[] args) throws Exception {Utils.setupDefaultUncaughtExceptionHandler();…

Android框架式編程之BufferKnife

BufferKnife作為框架式編程的重要組成部分&#xff0c;使用BufferKnife能夠極大的精簡View層面的代碼量&#xff0c;并為MVP/MVC方式提供輔助。 一、配置 compile com.jakewharton:butterknife:(insert latest version) annotationProcessor com.jakewharton:butterknife-compi…

如果我去深圳,你會見我嗎

▲圖/ 深圳夜景初次見易小姐&#xff0c;還是21年的春節回老家的時候。想來20年因為疫情沒有回家&#xff0c;家母幾次三番電話里頭表達的思念以及建議一些不靠譜的回家計劃&#xff0c;著實有些不忍&#xff0c;確實有似“兒行千里母擔憂”之理&#xff0c;索性拿著年假和加班…

CodeForces - 1059D(二分+誤差)

鏈接&#xff1a;CodeForces - 1059D 題意&#xff1a;給出笛卡爾坐標系上 n 個點&#xff0c;求與 x 軸相切且覆蓋了所有給出點的圓的最小半徑。 題解&#xff1a;二分半徑即可。判斷&#xff1a;假設當前二分到的半徑是 R &#xff0c;因為要和 x 軸相切&#xff0c;所以圓心…

pureref 平移用不了_關于參考圖管理神器 PureRef 的一些快捷鍵

PureRef 的一些快捷鍵 軟件下載&#xff1a;點擊這里控制(配合左鍵)窗口內鼠標左鍵     框選窗口邊鼠標左鍵     調整窗口大小鼠標中鍵 或 按住Alt     移動畫布鼠標滾輪 或 按住Z     縮放畫布按住S     查看目標位置顏色信息(可復制16進制顏色…

Windows 10 版本信息

Windows 10 版本信息 原文 https://technet.microsoft.com/zh-cn/windows/release-info Windows 10 版本信息 Microsoft 已更新其服務模型。 半年頻道每年發布兩次功能更新&#xff0c;時間大概在 3 月和 9 月&#xff0c;每個版本的服務時間線為 18 個月。 從 Windows 10 版本…

開源輕量的 .NET 監控工具 - 看門狗

你好&#xff0c;這里是 Dotnet 工具箱&#xff0c;定期分享 Dotnet 有趣&#xff0c;實用的工具或組件&#xff0c;希望對您有用&#xff01;簡介WatchDog 是一個使用 C# 開發的開源的輕量監控工具&#xff0c;它可以記錄和查看 ASP.Net Core Web 和 WebApi 的實時消息、事件、…

python讀取oracle數據庫性能_用python對oracle進行簡單性能測試

一、概述dba在工作中避不開的兩個問題&#xff0c;sql使用綁定變量到底會有多少的性能提升&#xff1f;數據庫的審計功能如果打開對數據庫的性能會產生多大的影響&#xff1f;最近恰好都碰到了&#xff0c;索性做個實驗。sql使用綁定變量對性能的影響開通數據庫審計功能對性能的…

BZOJ 3231: [Sdoi2008]遞歸數列 (JZYZOJ 1353) 矩陣快速冪

http://www.lydsy.com/JudgeOnline/problem.php?id3231和斐波那契一個道理在最后加一個求和即可1 #include<cstdio>2 #include<cstring>3 #include<iostream>4 //using namespace std;5 const int maxn10010;6 const double eps1e-8;7 long long modn;8 lon…

馬斯克的火箭上天了,SpaceX開源項目也登上了熱榜!

python知識手冊SpaceX于美國東部時間5月30日下午3&#xff1a;22分將兩位美國宇航員送往國際空間站&#xff0c;雖然這只是Demo任務&#xff0c;但SpaceX已經以其卓越工程優勢、低廉的發射成本贏得了全球航天產業的信賴。同時也是除美俄中這些航天國家隊以外&#xff0c;唯一獨…

EasyMock學習筆記

目前在接觸平臺側的開發&#xff0c;發現平臺側的東西和以前javacard開發很不一樣&#xff0c;看來以后要學的東西還有很多很多。今天接觸了下EasyMock。 Mock 方法是單元測試中常見的一種技術&#xff0c;它的主要作用是模擬一些在應用中不容易構造或者比較復雜的對象&#xf…

app啟動廣告頁的實現,解決了廣告圖片要實時更新的問題

網上很多的實現方法很多都是顯示第一次的緩存的圖片&#xff0c;這樣就造成后臺更新廣告圖片App不能實時展示的問題。 我的具體實現思路是&#xff1a; 1.啟動時先獲取啟動頁的圖片全屏展示。 2.設計一個等待時間&#xff0c;如果超過等待時間還沒拿到圖片就把獲取的啟動頁去掉…

vue中點擊插入html_Vue中插入HTML代碼的方法

我們需要吧Hello World插入到My name is Pjee應該如何做&#xff1f;一、使用v-htmlv-html:更新元素的 innerHTMLconst text Hello World>My name is Pjee注意&#xff1a;你的站點上動態渲染的任意 HTML 可能會非常危險&#xff0c;因為它很容易導致 XSS 攻擊。請只對可信…

進程共享變量#pragma data_seg用法

#pragma data_seg介紹用#pragma data_seg建立一個新的數據段并定義共享數據&#xff0c;其具體格式為&#xff1a;   #pragma data_seg &#xff08;"shareddata")   HWND sharedwndNULL;//共享數據   #pragma data_seg() ---------------------------------…

機器視覺Halcon教程(1.介紹)

前言本期教程主要教大家如何使用Halcon機器視覺&#xff0c;通過使用Halcon, 我們可以實現一些機器視覺的應用開發。例如: OCR識別、視覺定位、缺陷檢測等內容。什么是halcon&#xff1f;簡單來說, Halcon就是一款應用于機器視覺的軟件&#xff0c;它提供了一套開發工具&#x…

網絡時間的那些事及 ntpq 詳解

2019獨角獸企業重金招聘Python工程師標準>>> GMT (Greenwich Mean Time)格林威治時間 UTC (Coordinated Universal Time) 協調世界時 IAT (International Atomic Time),TAI 國際原子時 CST (Chinese Standard Time), 北京時間Gentoo&#xff08;也許其他發行版也是&…

【前端芝士樹】Javascript的原型與原型鏈

【前端芝士樹】Javascript的原型、原型鏈以及繼承機制 前端的面試中經常會遇到這個問題&#xff0c;自己也是一直似懂非懂&#xff0c;趁這個機會整理一下0. 為什么會出現原型和原型鏈的概念 1994年&#xff0c;網景公司&#xff08;Netscape&#xff09;發布了Navigator瀏覽器…

神奇的幻方2015提高組d1t1

題目描述 幻方是一種很神奇的N*N矩陣&#xff1a;它由數字1,2,3,……,N*N構成&#xff0c;且每行、每列及兩條對角線上的數字之和都相同。 當N為奇數時&#xff0c;我們可以通過以下方法構建一個幻方&#xff1a; 首先將1寫在第一行的中間。 之后&#xff0c;按如下方式從小到大…