我該選擇哪一種 Azure 的分散式快取 (Cache) 方案?

本文主要內容譯自 https://msdn.microsoft.com/en-us/library/azure/dn766201.aspx

在2014年5月12日,微軟宣布 Azure Redis Cache (技術預覽) 開始提供用戶測試使用。微軟公司建議 Azure 用戶所有的新開發的應用系統,未來皆採用 Azure Redis Cache。Azure Redis Cache 提供用戶一個由微軟管理,安全,專用的 Redis 快取服務。Microsoft Azure 提供了這項服務之後,用戶開始可以充分利用 Redis 目前在業界既有的生態系統與豐富的功能,並透過微軟穩定地營運與監管。

Redis

不同於只能使用 Key-Value 成對式的傳統的快取,Redis 之所以流行是因其具有多樣化且高效能之資料型別,Redis 所支援的各種資料型別可參閱 https://redis.io/topics/data-types。 Redis 也支援這些資料型別的運算操作 (atomic operation),例如用戶可以附加文字到一個 String; 可以遞增 Hash ; 可以推送一個資料至 List ; 可以計算兩個 Set 之間是否有交集的字串,差異的字串,與聯集的字串; 或是在 Sorted sets 內找到一個排序最高的成員。其他功能還包括支援運算不可部分完成的交易 (Transaction) ,發布/訂閱模式,Lua scripting,以及使 Redis 的表現更像一些傳統快取服務的相關功能,例如在 : 特定時間內 (time-to-live) 有效的 Key-Value 之配置與設置。

另一個重要的原因,是因為 Redis 週邊已經成功建立了一健康,充滿活力的開放原始程式碼之生態系統。能夠提供跨多種程式語言之 Redis client 用戶端環境,這使得 Microsoft Azure 內的現有用戶,無倫使用何種作業系統或程式語言都可以適用。對於 Microsoft ASP.NET 的用戶而言,Azure Redis Cache 亦提供了 ASP.NET Session State Provider,可參閱 https://msdn.microsoft.com/en-us/library/azure/dn690522.aspx 步驟進行設定。如何取的 Redis Client Library for Microsoft .NET 可參閱 https://msdn.microsoft.com/en-us/library/azure/dn690471.aspx

目前 Microsoft Azure Redis 的高速快取服務雖尚在技術預覽階段,目前在快取容量可達 26 GB。預計在 2014 年底前此服務即會正式推出,屆時 Microsoft Azure Redis 將會支援超過 26 GB 的快取容量,並提供 99.9% 不停機的高可用性服務水準合約 (SLA)。

而目前既有的 Azure Managed Cache Service 同樣提供了 99.9% 高可用性服務水準合約 (SLA)。如果你是一個現有的 Azure Managed Cache Service 客戶,你仍可以繼續使用現有的服務或選擇未來遷移到 Microsoft Azure Redis ,以享用 Redis 所提供的各類新功能。同樣如果你是現有 Azure In-Role Cache 的客戶,你仍可以繼續使用現有的服務,或選擇未來遷移到 Microsoft Azure Redis 以享用Redis 所提供的各類新功能。對於 Azure Shared Cache 的客戶,請注意 Azure Shared Cache 將於 2014年 9月1日終止服務,您應該盡快移植現有應用系統至其他快取服務, 對於 Azure Shared Cache 移植相關指引文件可參閱: Migrate from Shared Caching.