Azure Cache for Redis基于Redis軟件提供內(nèi)存中數(shù)據(jù)存儲(chǔ)。Redis極大地提高了在后端數(shù)據(jù)存儲(chǔ)上使用的應(yīng)用程序的性能和可伸縮性。它將經(jīng)常訪問(wèn)的數(shù)據(jù)保留在可快速讀寫(xiě)的服務(wù)器內(nèi)存中,從而能夠處理大量應(yīng)用程序請(qǐng)求。Redis為新式應(yīng)用程序帶來(lái)了關(guān)鍵的低延遲、高吞吐量數(shù)據(jù)存儲(chǔ)解決方案。
Azure Cache for Redis提供Redis開(kāi)放源代碼和Redis Labs提供的一款商業(yè)產(chǎn)品作為托管服務(wù)。它提供安全的專用Redis服務(wù)器實(shí)例,且完全兼容Redis API。該服務(wù)由Microsoft管理并在Azure中托管,可供Azure內(nèi)外的任何應(yīng)用程序訪問(wèn)。
Azure Cache for Redis可用作分布式數(shù)據(jù)或內(nèi)容緩存、會(huì)話存儲(chǔ)和消息中轉(zhuǎn)站等。它可單獨(dú)部署,也可與其他Azure數(shù)據(jù)庫(kù)服務(wù)(如Azure SQL或Cosmos DB)一起部署。
關(guān)鍵方案
Azure Cache for Redis通過(guò)支持常見(jiàn)的應(yīng)用程序體系結(jié)構(gòu)模式來(lái)提高應(yīng)用程序性能。部分最常用的模式包括:
Redis版本
Azure Cache for Redis支持OSS Redis版本4.x和6.0(預(yù)覽版)。我們已決定跳過(guò)Redis 5.0,為你提供最新版本。以前,Azure Cache for Redis僅維護(hù)一個(gè)Redis版本。以后,它將提供一個(gè)較新的主要版本升級(jí),以及至少一個(gè)較舊的穩(wěn)定版本。你可以選擇最適合你的應(yīng)用程序的版本。
服務(wù)層
Azure Redis緩存在下述層中提供:
功能比較
Azure Cache for Redis定價(jià)提供了每個(gè)層的詳細(xì)比較。下表介紹了每個(gè)層支持的部分功能:
選擇正確的層
選擇Azure Cache for Redis層時(shí),應(yīng)考慮以下事項(xiàng):
·內(nèi)存:基本層和標(biāo)準(zhǔn)層提供250 MB-53 GB;高級(jí)層提供6 GB-1.2 TB;企業(yè)層提供12 GB-14 TB。若要?jiǎng)?chuàng)建大于120 GB的高級(jí)層緩存,可以使用Redis OSS群集。有關(guān)詳細(xì)信息,請(qǐng)參閱Azure Redis緩存定價(jià)。有關(guān)詳細(xì)信息,請(qǐng)參閱如何為高級(jí)Azure Redis緩存配置群集功能。
·網(wǎng)絡(luò)性能:如果工作負(fù)載需要較高的吞吐量,則可使用高級(jí)層或企業(yè)層,這兩層可提供比基本層或標(biāo)準(zhǔn)層更高的帶寬。另外,在每個(gè)層中,緩存大小越大,帶寬越高,因?yàn)槭怯苫A(chǔ)VM托管緩存。有關(guān)詳細(xì)信息,請(qǐng)參閱Azure Cache for Redis性能。
·吞吐量:高級(jí)級(jí)別提供的可用吞吐量最大。如果緩存服務(wù)器或客戶端達(dá)到帶寬限制,客戶端可能會(huì)出現(xiàn)超時(shí)。有關(guān)詳細(xì)信息,請(qǐng)參閱下表。
·高可用性:Azure Cache for Redis提供了多個(gè)高可用性選項(xiàng)。它保證標(biāo)準(zhǔn)、高級(jí)或企業(yè)緩存的可用性符合我們的SLA。SLA僅涉及與緩存終結(jié)點(diǎn)的連接。SLA不涉及對(duì)數(shù)據(jù)丟失的防護(hù)。我們建議使用高級(jí)層中的Redis數(shù)據(jù)暫留功能來(lái)增加靈活性,防止數(shù)據(jù)丟失。
·數(shù)據(jù)暫留:高級(jí)層允許你將緩存數(shù)據(jù)暫留在Azure存儲(chǔ)帳戶中。在其他層中,數(shù)據(jù)僅存儲(chǔ)在內(nèi)存中。底層基礎(chǔ)結(jié)構(gòu)問(wèn)題可能會(huì)導(dǎo)致潛在的數(shù)據(jù)丟失。我們建議使用高級(jí)層中的Redis數(shù)據(jù)暫留功能來(lái)增加靈活性,防止數(shù)據(jù)丟失。Azure Cache for Redis提供可在Redis暫留中使用的RDB和AOF(預(yù)覽版)選項(xiàng)。有關(guān)詳細(xì)信息,請(qǐng)參閱如何為高級(jí)Azure Redis緩存配置持久性。
·網(wǎng)絡(luò)隔離:Azure專用鏈接和虛擬網(wǎng)絡(luò)(VNET)部署為Azure Cache for Redis提供增強(qiáng)的安全性和流量隔離。使用VNET,可以進(jìn)一步通過(guò)網(wǎng)絡(luò)訪問(wèn)控制策略來(lái)限制訪問(wèn)。有關(guān)詳細(xì)信息,請(qǐng)參閱具有Azure專用鏈接的Azure Cache for Redis和如何為高級(jí)Azure Cache for Redis配置虛擬網(wǎng)絡(luò)支持。
·客戶端連接的最大數(shù)量:高級(jí)級(jí)別提供的可以連接到Redis的客戶端數(shù)量是最大的,緩存大小越大,連接數(shù)量越大。群集不會(huì)增加可用于群集緩存的連接數(shù)。有關(guān)詳細(xì)信息,請(qǐng)參閱Azure Redis緩存定價(jià)。
·針對(duì)Redis服務(wù)器的專用核心:除C0之外的所有緩存均運(yùn)行專用VM核心。
·單線程處理:根據(jù)設(shè)計(jì),Redis只使用一個(gè)線程進(jìn)行命令處理。Azure Cache for Redis還利用其它核心進(jìn)行I/O處理。擁有更多的內(nèi)核可能不會(huì)產(chǎn)生線性縮放,但可提高吞吐量性能。而且,較大VM的帶寬限制通常比較小VM的更高。這有助于避免網(wǎng)絡(luò)飽和,從而避免應(yīng)用程序超時(shí)。
·性能改進(jìn):高級(jí)層和企業(yè)層中的緩存部署在處理器速度更快的硬件上,可提供比基本層或標(biāo)準(zhǔn)層更好的性能。高級(jí)級(jí)別緩存的吞吐量更高,延遲更低。有關(guān)詳細(xì)信息,請(qǐng)參閱Azure Cache for Redis性能。
創(chuàng)建緩存后,可以將其從基本層升級(jí)到高級(jí)層。不允許降到更低的層。有關(guān)縮放的分步說(shuō)明,請(qǐng)參閱如何縮放Azure Redis緩存和如何自動(dòng)執(zhí)行縮放操作。
企業(yè)層要求
企業(yè)層依賴于Redis Enterprise,它是Redis實(shí)驗(yàn)室提供的商業(yè)版Redis??蛻魧⑼ㄟ^(guò)Azure市場(chǎng)產(chǎn)品/服務(wù)獲取此軟件的許可證并為其付費(fèi)。Azure Cache for Redis將有助于獲取許可證,使你無(wú)需單獨(dú)執(zhí)行此操作。若要在Azure市場(chǎng)中購(gòu)買,必須具備以下先決條件:
·Azure訂閱具有有效的付款方式。不支持Azure額度或免費(fèi)MSDN訂閱。
·你是訂閱的所有者或參與者。
·你的組織允許進(jìn)行Azure市場(chǎng)購(gòu)買。
·如果你使用的是專用市場(chǎng),它必須包含Redis實(shí)驗(yàn)室企業(yè)產(chǎn)品/服務(wù)。