一.Redis是什麼?mysql
Redis是一個遠程內存數據庫,它不只性能強勁,並且還具備複製特性以及爲解決問題而生的獨一無二的數據模型。Redis提供了5種不一樣類型的數據結構,各式各樣的問題均可以很天然地映射到這些數據結構上:Redis的數據結構致力於幫助用戶解決問題,而不會像其餘數據庫那樣,要求用戶扭曲問題來適應數據庫。除此以外,經過複製、持久化(persistence)和客戶端分片(client-side sharding)等特性,用戶能夠很方便地將Redis擴展成一個可以包含數百GB數據、每秒處理上百萬次請求的系統。redis
使用Redis能夠極大的提高咱們應用程序的性能,好比一個小說網站,須要顯示閱讀量排名前10的小說,若是每次都要去從數據庫查詢就太耗費數據庫性能了,也會增長咱們的響應時間。咱們能夠將這個列表放在redis裏面,這樣每次就能夠從redis裏面取數據量,速度是很是快的。sql
三.aspnet-zero-core 如何使用Redis緩存數據庫
項目「MyCompanyName.MyProject.Web.Core」 如下簡稱「Web.Core」json
項目「MyCompanyName.MyProject.Web.Mvc」 如下簡稱「Web.Mvc」跨域
使用Redis緩存,請先經過nuget安裝包 Abp.RedisCache緩存
1.打開項目「Web.Core」 的「AbpZeroTemplateWebCoreModule.cs」 在「PreInitialize」方法裏服務器
1 Configuration.Caching.UseRedis(options => 2 { 3 options.ConnectionString = _appConfiguration["Abp:RedisCache:ConnectionString"]; 4 options.DatabaseId = _appConfiguration.GetValue<int>("Abp:RedisCache:DatabaseId"); 5 });
2.修改redis配置 配置文件在項目「Web.Mvc」裏 appsettings.json數據結構
這裏說一下DatabaseId,及Redis數據庫ID,不一樣的數據庫ID有助於在同一服務器中建立不一樣的密鑰空間(隔離緩存)。app
3.設置默認過時時間,一樣是在 項目「Web.Core」 的「AbpZeroTemplateWebCoreModule.cs」 在「PreInitialize」方法裏,放在redis代碼以前
1 //設置全部緩存的默認過時時間 2 Configuration.Caching.ConfigureAll( cache => 3 { 4 cache.DefaultAbsoluteExpireTime = TimeSpan.FromMinutes(2); 5 }); 6 //設置某個緩存的默認過時時間 根據 "CacheName" 來區分 7 Configuration.Caching.Configure("CacheName", cache => 8 { 9 cache.DefaultAbsoluteExpireTime = TimeSpan.FromMinutes(2); 10 });
4. 最後不要忘了設置模塊依賴
四.驗證是否設置成功
啓動運行項目,查看redis裏是否有數據。這裏我是用的是redisdesktopmanager,下載地址:https://redisdesktop.com/download
很明顯的看出已經使用成功了。
五.如何在代碼中使用緩存
1.經過容器注入緩存管理器,這裏可使用屬性注入或者構造方法注入都可
2.使用緩存
這裏Get方法有兩個參數,第一個參數是緩存中的key,第二個參數是當緩存中數據不存在,那麼執行獲取數據的方法。
思考:咱們都知道Redis是跨進程甚至跨域的緩存,有時候咱們不必使用Redis緩存,使用本機緩存就夠,我想必定會存在同時使用Redis緩存和本機緩存即 MemoryCache,
ABP默認應該是不支持存在多個緩存,至少目前我在官方文檔沒看到。咱們查看,啓用Redis緩存那幾句代碼中, UseRedis 方法的源代碼:
能夠發如今上圖紅框處注入了 AbpRedisCacheManager ,,而後可想而知咱們在使用緩存的時候經過容器注入的就是Redis緩存了,那麼咱們只須要將MemoryCache也注入便可同時使用Redis和MemoryCache。
這只是個人想法,並無進行測試,有興趣的朋友能夠測試一下。
好了Redis的設置十分簡單,下篇將會給你們分享一下,我在core下使用經過mysql數據庫來進行存儲的hangfire的那些坑~
若是你以爲寫的不錯,請點一下下面的「推薦」,這是對我分享技術經驗的支持,謝謝!↓↓↓↓↓↓↓↓↓↓↓