Redis各位確定都是知道的,目前最流程的No SQL之一,在衆多應用場景中都有使用,具備高性能,抗併發的特性,在Azure中Redis也是個客戶經常使用的服務,接下來準備寫個短篇系列的博客專門來介紹Azure上redis的使用
redis
首先來看下Redis的經常使用場景,經過這個介紹也能夠看下什麼樣的狀況適合用Redis服務
數據庫
模式 | 說明 |
緩存端 |
因爲數據庫可能很大,所以不建議將整個數據庫加載到緩存中。 一般使用緩存端模式,只在須要時纔將數據項加載到緩存中。 系統在更改後端數據時,也會同時更新分佈到其餘客戶端的緩存。 另外,系統還能夠設置數據項的過時時間,或者經過逐出策略將數據更新從新加載到緩存中。 |
內容緩存 | 大多數經過模板生成的網頁會帶有頁眉、頁腳、工具欄、菜單,等等。這些網頁實際上不常常變化,不該以動態方式生成。 與使用後端數據存儲相比,使用內存中緩存(例如 Azure Redis 緩存)可讓 Web 服務器快速訪問此類靜態內容。 此模式可減小以動態方式生成內容所需的處理時間和服務器負荷。 這樣能夠提升 Web 服務器的響應能力,減小處理負荷所需的服務器數。 Azure Redis 緩存提供 Redis 輸出緩存提供程序,支持對 ASP.NET 使用此模式。 |
用戶會話緩存 |
此模式一般用於購物車和其餘用戶歷史記錄類型的信息。Web 應用程序可能須要將此類信息與用戶 Cookie 相關聯。 在 Cookie 中存儲過多內容可能會對性能形成負面影響,由於 Cookie 會變大,而且每次請求都須要傳遞和驗證 Cookie。 經常使用解決方案是使用 Cookie 做爲鍵來查詢後端數據庫中的數據。 使用內存中緩存(例如 Azure Redis 緩存)將信息與用戶關聯在速度上要比與整個關係數據庫交互快得多後端 |
做業和消息隊列 | 當應用程序收到請求時,一般還須要額外的時間來執行與請求相關聯的操做。 一般會將運行時間較長的操做添加到隊列中,留待之後處理(可能由其餘服務器處理)。 這種將工做推遲的方法稱爲任務隊列。 多種軟件組件專用於提供任務隊列支持。 Azure Redis 緩存也以分佈式隊列的方式提供此支持。 |
分佈式事務 | 一般會要求應用程序可以以單個操做(原子操做)的方式對後端數據存儲執行一系列命令。 全部命令都必須成功,不然,全部命令都必須回退到初始狀態。 Azure Redis 緩存支持經過單個操做以事務形式執行一批命令。 |
若是符合這些場景的話,那麼就能夠嘗試使用Redis,Azure上的Redis和其餘服務同樣,也是分不一樣的級別的
緩存
層 | 說明 |
基本 | 單節點緩存。 此層支持多種內存大小 (250 MB - 53 GB)。 此層適用於開發/測試和非關鍵型工做負荷。 基本層沒有服務級別協議 (SLA) |
標準 | 的雙節點(主/輔)配置中提供複製的緩存,並提供高可用性 SLA (99.9%) |
高級 | 高級層是面向企業的層。 高級層緩存支持更多的功能,吞吐量更高,延遲更低。 高級層中的緩存部署在更強大的硬件上,其性能優於基本層或標準層。 這種優點意味着,在緩存大小相同的狀況下,高級層的吞吐量大於標準層。 |
不一樣的層功能也會有很大區別,簡單來講能夠用一張圖來直觀的看到不一樣層支持的功能服務器
整體來講,微信
基本緩存是單個緩存節點,適用於開發/測試和非關鍵型工做負荷。基本級別沒有服務級別協議。緩存節點的更新升級階段,服務不可用,數據可能會丟失。網絡
標準緩存在雙節點主要/輔助配置中提供一個複製的緩存。微軟會管理兩個節點之間的自動複製,並提供一個高可用性的服務級別協議。併發
高級緩存除了擁有更強大的性能以外,還提供了衆多標準和基本層級不支持的功能,好比VNET集成,Redis羣集模式,sharding等
分佈式
固然除了功能以外,各個層級都有不一樣的性能指標,容許的客戶端最大鏈接數量也是不一樣的ide
好比
基本 | 標準 |
高級 |
|
內存大小 |
250 MB - 53 GB | 250 MB - 53 GB | 6 GB - 530 GB* |
網絡性能 | 低 - 高 | 低 - 高 | 中等 - 最高 |
客戶端最大鏈接數量 |
20000 |
20000 | 40000 |
固然每一個層級也會有不一樣的登記,好比標準層級還會細分爲C0-C6 7個級別,每一個級別的價格和性能都是不同的,具體能夠參考如下網址
https://www.azure.cn/zh-cn/pricing/details/cache/
對於生產環境來講,最少也要使用標準版
以上就是Redis的簡單介紹,接下來咱們來看下建立Redis過程當中的一些配置,以及如何驗證Redis是否能正常工做