2015年5月14日 星期四

使用Azure的Redis Cache上手紀錄…比較篇-I

 

進階篇當中我們已經了解到可以在Redis Cache當中經過序列化後儲存程式當中的物件資料,所以若是您經過考量想要將資料轉移儲存到Redis Cache上時,那對我們的應用程式或者網站應用服務,在對外的I/O處理上帶來如何的效益呢?!

不過我們先來將之前進階篇當中所提到的序列化方式來做個比較吧~

因為小弟本人沒啥測量工具的使用能力,就只是利用針對程式撰寫時會順便跑Unit Test(註一),而Unit Test跑後會產出程式碼執行測試的時間,就將此測試時間來做為驗證的數據,雖然這樣跟91大所說Unit Test要不與外部相依的精神相違逆,但卻是在手邊沒有任何測量工具的使用時,取得很簡便參考與比較的數據的方式。

各位看倌就看看吧~~

 

在這邊我們 先將之前在進階篇的範例程式再改為適合直接做Unit Test的撰寫,所以在專案當中來加入一個"RedisCacheAccess"的Helper。

先新增個Helper的資料夾。

image

image

 

接著再此Helper資料夾當中新增一個"RedisCacheAccess"的類別。

image

image

image

 

接著再新增好的"RedisCacheAccess”當中,把之前撰寫再Controller當中的程式碼搬過來,並且稍微改寫一下。

image

image

 

因為小弟要比較的是"JsonConverter”跟直接序列化後,存到RedisCache的資料效率比較,所以要再繼續撰寫協助資料序列化/反序列化的程式,在此小弟將它命名為"RedisExtensions”。

image

image

 

新增完畢後就來撰寫相關的序列化/反序列化程式

image

 

接著再回到之前所新增的"RedisCacheAccess”程式當中,改寫該程式當中的方法,原方法就將它改名,"叫做JsonConvert”的使用。然後再製作使用"RedisExtentons”的方法。

image

image

 

以上都完成後,在記得將之前所設計的Contact加上類別描述詞-[Serializable],這樣才能讓Contact的類別能夠正常的序列化。

image

 

接下來就可以開始新增相關的測試案例了~~

打完收工~~

下回見!!!

 

參考資料:

Azure - Redis Cache:
http://blog.sanc.idv.tw/2014/08/azure-redis-cache.html

如何使用 Azure Redis 快取:
http://azure.microsoft.com/zh-tw/documentation/articles/cache-dotnet-how-to-use-azure-redis-cache/

使用Azure Cache - Redis Cache 加速效能:
http://www.dotblogs.com.tw/jaigi/archive/2015/01/08/148005.aspx

CODE-使用JSON.NET處理動態物件屬性
http://blog.darkthread.net/post-2010-06-05-json-net-jobject-example.aspx

 

===========================================================

註一: 若要深入了解Unit Test與在TDD當中的真正用法與精神請觀看30天快速上手 TDD相關系列文章。若意猶未竟,想要透過實務動手做做看,更請注意Skilltree的課程"自動測試與 TDD 實務開發(使用C#)",實際參加一次課程,會讓您對於TDD有耳目一新的認識。

 

沒有留言:

張貼留言