天天看點

Nancy之Cache的簡單使用

Nancy之Cache的簡單使用

在Nancy中使用緩存,主要是MemoryCache和Redis這兩種。

說起緩存,或許大家都不陌生,甚至是天天都在用!當然緩存也被分的越來越細,頁面緩存、資料緩存、檔案緩存等等。

其實呢,我個人覺得,主要還是兩大類:資料的緩存和頁面的緩存。資料緩存的話就包括所有跟資料扯上關系的都可以

歸到這一類,至于頁面緩存的話,就是把一些頁面緩存起來,尤其是靜态的頁面,對通路速度可以說是杠杠的。本文主要

介紹的是資料的緩存。當然本文說是這Nancy中使用,但是這一塊是通用的,無論你是在MVC、WebForm、甚至是最新的

Asp.Net Core都是基本一緻的。可以選擇的緩存類型又有很多,可以用微軟自己的MemoryCache,可以用牛逼的Redis,當然

也可以用分布式緩存MemCached,如果問要怎麼選的話,那就是視情況而定!

說起資料緩存,最直接想到的肯定就是對時間的緩存。在某個頁面顯示一個時間,緩存了10秒的話,那這10秒怎麼重新整理都是不換

變化的。這個可以說是了解緩存最最最簡單的一個例子了。下面就來看看Demo吧。

先簡單介紹一下MemoryCache吧,MemoryCache是位于System.Runtime.Caching下面的一個類。

裡面具體的一些屬性和方法可以參見msdn上的介紹

https://msdn.microsoft.com/en-us/library/system.runtime.caching.memorycache

值得一提的是Default這個屬性。這個屬性也是我們等下要用到的。MemoryCache中的實作用了單例模式,更具體的可以參見源碼

http://referencesource.microsoft.com/#System.Runtime.Caching/System/Caching/MemoryCache.cs

好了,不廢話了,開始正題了。

首先定義一個ICache的接口

這個接口應該沒有什麼好說的,了解過緩存的應該都是懂的,不過寫的也不全,像清空緩存等方法還是沒有寫,不都都是挺好了解的。

有了接口,肯定會有實作!Cache就是基于MemoryCache實作的。

前面說過,會用到Default這個屬性。我是在構造函數中去指派的。那些正常的操作就是通過MemoryCache.Default去進行操作的!

下面就是Nancy的代碼了,如果對Nancy還有疑問的話,可以去看看我前面介紹Nancy的文章。

效果圖:

Nancy之Cache的簡單使用

 可以看到,這個時間被緩存了10秒,十秒之後才會發生變化。

Redis可以說是神器啊,它的性能确實比memcached要好一些。

要用Redis,肯定要先裝一個redis,這個是必不可少的,本人裝的是windows版,具體如下:

Nancy之Cache的簡單使用

當然,這隻是個大前提,要想去操作Redis還得用工具的,這個時候我們可以通過NuGet去安裝

StackExchange.Redis 或者是 ServiceStack.Redis ,相信這兩個是大家用的最多的。

Nancy之Cache的簡單使用

示例用的是StackExchange.Redis這個包。 

這個是在Nancy中使用Redis的代碼,這裡的話就沒對Reids的操作進行封裝,是直接在方法裡面進行了操作。

下面是效果圖

Nancy之Cache的簡單使用

可以看到效果已經出來了!!!

至于memcached的話,就不在做Demo示範了。 

本文這兩個例子比較簡單,但是應該是通俗易懂的。不過篇幅基本都在介紹緩存,隻是在Nancy中使用到了

這些知識而已。緩存說複雜的話,它并不那麼複雜,無非就是讀和寫。但是說簡單,它也并不簡單,用的時機以及怎麼用

對一個網站會帶來很重要的影響。

後面有時間的話會用Nancy和Redis做一個複雜一點的例子。 

Nancy之Cache的簡單使用

如果您認為這篇文章還不錯或者有所收獲,可以點選右下角的【推薦】按鈕,因為你的支援是我繼續寫作,分享的最大動力!

作者:Catcher Wong ( 黃文清 )

來源:http://catcher1994.cnblogs.com/

聲明:

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。如果您發現部落格中出現了錯誤,或者有更好的建議、想法,請及時與我聯系!!如果想找我私下交流,可以私信或者加我微信。

繼續閱讀