在本快速入門中,您會使用 Jedis Redis 用戶端,將 Azure Cache for Redis 納入 Java 應用程式。 您的快取可從 Azure 的任何應用程式存取,是安全的專用快取。
跳至 GitHub 上的程式碼
複製 GitHub 上的 Java 快速入門存放庫。
先決條件
- Azure 訂用帳戶 - 建立免費帳戶
- Apache Maven
建立 Azure 受控 Redis 實例
若要建立 Azure 受控 Redis 實例,請登入 Azure 入口網站,然後選取 [ 建立資源]。
在「建立資源」頁面中的搜索框中輸入Azure Managed Redis。
選擇 Azure Managed Redis 磁貼並選擇 「建立」。
在 「建立 Azure Managed Redis 實例 」面板中,在 「基礎 」標籤中設定新快取的設定。
設定 選擇值 說明 訂閱 下拉並選取您的訂用帳戶。 這個新的 Azure Managed Redis 執行個體建立所在的訂用帳戶。 資源群組 下拉並選取資源群組,或選取 [新建] 並輸入新的資源群組名稱。 用來建立快取和其他資源的資源群組名稱。 將所有的應用程式資源放在一個資源群組中,您將可輕鬆地一併管理或刪除這些資源。 名稱 輸入區域中唯一的名稱。 當快取名稱與快取的區域名稱合併 (只包含數字、字母或連字號) 時,必須為介於 1 到 63 個字元之間的字串。 (如果快取名稱長度小於 45 個字元,則應該適用於所有目前可用的區域。) 名稱必須以數字或字母開頭和結尾,且不能包含連續連字號。 快取執行個體的主機名稱為 \<DNS name\>.\<Azure region\>.redis.azure.net。區域 下拉並選取位置。 Azure Managed Redis 可在選取的 Azure 區域中使用。 數據層 選取內存以提供高效能,或選取效能較低的Flash快取 記憶體內部層包括 平衡、 記憶體優化和 計算優化。 使用 Flash 層來使用記憶體內部 (RAM) 和磁碟上的 (SSD) 資料記憶體。 快取大小 下拉選單並選取大小。 快取大小取決於階層。 最小的尺寸是平衡等級。 記憶體內部層大小最大的是記憶體優化層。 效能 打開下拉選單並選取效能偏好。 效能取決於 vCPU 的數目。 vCPU 數目會隨著層級而有所不同。 計算最佳化具有最多的 vCPU。 如需選擇正確效能層級的指引,請參閱 選擇正確的層級。
這很重要
所有使用超過 235 GB 儲存空間的記憶體內層級皆在公開預覽中,包括記憶體優化 M350 及以上版本;平衡 B350 及以上;以及 Compute Optimized X350 及以上版本。 所有這些層級和更高層級都處於公開預覽狀態。
所有 Flash 優化層都處於公開預覽狀態。
選擇 「下一頁:網路」 ,並選擇 「停用公共存取並使用私人存取 」或 「啟用所有網路的公開存取」。
選取 [下一步:主動式異地複寫]。 若要使用主動式異地復寫功能,必須在布建期間啟用此功能。 沒有作用中異地複寫的快取無法在稍後新增或加入作用中異地複寫群組。 如需詳細資訊,請參閱設定 Azure Managed Redis 執行個體的作用中異地複寫。
選取 [ 下一步:進階 ] 索引標籤。
設定您想要新增至 實例的任何 Redis 模組 。
設定 叢集原則:
- 使用 Enterprise 以使用 RedisSearch 或其他模組
- 針對叢集快取使用 OSS 。
- 針對非叢集快取使用非叢集式(預覽版)。
如需選擇叢集原則的詳細資訊,請參閱叢集原則。
根據預設,針對新的受控快取:
- 已啟用 Microsoft Entra ID。
- 存取金鑰驗證基於安全性原因已停用。
這很重要
您無法在建立快取執行個體之後變更模組。 模組必須在建立 Azure Managed Redis 實例時啟用。 建立快取之後,沒有選項可啟用模組的設定。
這很重要
為了獲得最佳安全性,建議您盡可能使用 Microsoft Entra ID 搭配受控識別來授權對快取的要求。 使用 Microsoft Entra 識別碼和受控識別進行授權,可提供優於共用存取密鑰授權的安全性與使用便利性。 如需搭配快取使用受控識別的詳細資訊,請參閱 使用 Microsoft Entra ID 進行快取驗證。
這很重要
建立 Azure 受控 Redis 實例之後,您無法變更叢集原則。 如果您使用 RediSearch,則需要企業叢集原則,而且
NoEviction是唯一支援的收回原則。這很重要
如果您在異地複寫群組中使用這個快取執行個體,在建立執行個體之後就無法變更收回原則。 建立快取之前,請務必了解主要節點的收回原則。 如需關於作用中異地複寫的詳細資訊,請參閱作用中異地複寫必要條件。
選取 [下一步:標記] 並略過。
選取 下一步:檢閱 + 建立。
檢閱設定並選取 [建立]。
Redis 執行個體需要幾分鐘的時間才能建立。 您可以在 Azure Managed Redis 的 [概觀] 頁面上監視進度。 當 [狀態] 顯示為 [執行中] 時,表示快取已可供使用。
建立 Azure Cache for Redis 執行個體
在 Azure 入口網站中,搜尋並選取 [Azure Cache for Redis]。
在 [Azure Cache for Redis] 頁面上,選取 [建立>Azure Cache for Redis]。
在 [新增 Redis 快取] 頁面的 [基本] 索引卷標上,設定下列設定:
- 訂用帳戶:選取要使用的訂用帳戶。
- 資源群組:選取資源群組,或選取 [ 新建 ],然後輸入新的資源組名。 將所有應用程式資源放在相同的資源群組中,可讓您輕鬆地管理或刪除它們。
-
名稱:輸入區域中唯一的快取名稱。 名稱必須:
- 為 1 到 63 個字元的字串。
- 只包含數字、字母和連接號。
- 以數字或字母開頭和結尾。
- 未包含連續的連字號。
- 區域:選取一個 Azure 區域,使其靠近使用您快取的其他服務。
- 快取 SKU:選取 SKU 以判斷快取可用的大小、效能和功能。
- 快取大小:選取快取大小。 如需詳細資訊,請參閱 Azure Cache for Redis 概觀。
選取 網路 標籤,或選取 下一步:網路。
在 [網路] 索引標籤上,選取要用於快取的連線方法。 建議使用私人端點以提高安全性。 如果您選取 [私人端點],請選取 [新增私人端點 ],然後建立私人端點。
選取 [ 進階] 索引卷標,或選取 [ 下一步:進階]。
在 [ 進階 ] 窗格上,設定下列選項:
- 選取 Microsoft Entra 驗證 或 存取金鑰驗證。 Microsoft Entra Authentication 默認是啟用的。
- 選擇是否 要啟用 非 TLS 埠。
- 針對進階快取,您可以設定或停用 可用性區域。 您無法在建立快取後停用可用性區域。 針對標準快取,系統會自動配置可用性區域。 可用性區域不適用於基本 SKU。
- 針對進階快取,請設定 複本計數、 叢集 和 分區計數、 系統指派的受控識別和數據 持續性的設定。
下圖顯示標準 SKU 的 [ 進階 ] 索引標籤。
這很重要
盡可能使用 Microsoft Entra ID 搭配受控識別,以授權對快取的要求。 使用 Microsoft Entra ID 和受控識別的授權可提供更佳的安全性,而且比共用存取密鑰授權更容易使用。 如需搭配快取使用受控識別的詳細資訊,請參閱 使用 Microsoft Entra ID 進行快取驗證。
或者,選取 [標籤] 索引標籤或選取 [下一步:標籤],然後輸入標籤名稱和值以分類您的快取資源。
選取 [檢閱 + 建立],一旦通過驗證,請選取 [ 建立]。
新的快取部署需要數分鐘的時間。 您可以在入口網站 Azure Cache for Redis 頁面上監視部署進度。 當快取 狀態 顯示 [ 執行中] 時,快取即可供使用。
從 Azure 入口網站擷取主機名稱、連接埠和存取金鑰
若要連線 Azure Cache for Redis 伺服器,快取用戶端需要快取的主機名稱、連接埠和金鑰。 某些用戶端可能會以稍有不同的名稱來參考這些項目。 您可以從 Azure 入口網站取得主機名稱、連接埠和金鑰。
若要取得快取的主機名稱和連接埠,請從 [資源] 功能表選取 [概觀]。 主機名稱格式為
<DNS name>.redis.cache.windows.net。
若要取得存取金鑰,請從 [資源] 功能表中選取 [驗證]。 然後,選取 [存取金鑰] 索引標籤。
設定工作環境
下列步驟說明如何設定 Java 應用程式的工作環境。
export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export REDIS_CACHE_PORT=10000
export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export REDIS_CACHE_PORT=6380
用以下值取代占位符:
<your-host-name>:DNS 主機名稱。 若要取得快取的主機名稱和連接埠,請從 [資源] 功能表選取 [概觀]。 主機名稱格式為<DNS name>.redis.cache.windows.net。
<your-client-id>:Azure AD 應用程式註冊的應用程式 (用戶端) 識別碼。<your-client-secret>:Azure AD 應用程式註冊的用戶端密碼。<your-tenant-id>:您的 Azure Active Directory 租用戶識別碼。備註
上述範例使用用戶端密碼驗證。 您也可以修改
redis-authx-entraid程式碼中的設定,將程式庫設定EntraIDTokenAuthConfigBuilder為使用其他驗證方法,例如受控識別或用戶端憑證。
建立新的 Java 應用程式
使用 maven 產生新的快速入門應用程式:
mvn archetype:generate \ -DarchetypeGroupId=org.apache.maven.archetypes \ -DarchetypeArtifactId=maven-archetype-quickstart \ -DarchetypeVersion=1.3 \ -DinteractiveMode=false \ -DgroupId=example.demo \ -DartifactId=redis-jedis-test \ -Dversion=1.0變更至新的 redis-jedis-test 專案目錄。
開啟 pom.xml 檔案。 在此檔案中,您會看到 Jedis 的相依性:
備註
Microsoft 已與 Redis, Inc. 建立合作夥伴關係。作為此共同作業的一部分,Microsoft Entra ID 驗證支援已從 Azure SDK 移至 Redis Entra ID 延伸模組。 新的
redis-authx-entraid程式庫提供增強的驗證功能,而且是使用 Azure Cache for Redis 進行 Microsoft Entra ID 驗證的建議方法。<dependency> <groupId>redis.clients.authentication</groupId> <artifactId>redis-authx-entraid</artifactId> <version>0.1.1-beta2</version> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>6.0.0</version> </dependency>關閉 pom.xml 檔案。
開啟 App.java 檔案,並使用下列程式碼查看程式碼:
package example.demo; import com.azure.identity.DefaultAzureCredentialBuilder; import redis.clients.authentication.core.TokenAuthConfig; import redis.clients.authentication.entraid.AzureTokenAuthConfigBuilder; import redis.clients.jedis.DefaultJedisClientConfig; import redis.clients.jedis.HostAndPort; import redis.clients.jedis.UnifiedJedis; import redis.clients.jedis.authentication.AuthXManager; import java.util.Set; /** * Redis test with Microsoft Entra ID authentication using redis-authx-entraid * For more information about Redis authentication extensions, see: * https://redis.io/docs/latest/develop/clients/jedis/amr/ * */ public class App { public static void main( String[] args ) { String REDIS_CACHE_HOSTNAME = System.getenv("REDIS_CACHE_HOSTNAME"); int REDIS_PORT = Integer.parseInt(System.getenv().getOrDefault("REDIS_CACHE_PORT", "10000")); String SCOPES = "https://redis.azure.com/.default"; // The scope for Azure Cache for Redis // Build TokenAuthConfig for Microsoft Entra ID authentication TokenAuthConfig tokenAuthConfig = AzureTokenAuthConfigBuilder.builder() .defaultAzureCredential(new DefaultAzureCredentialBuilder().build()) .scopes(Set.of(SCOPES)) .tokenRequestExecTimeoutInMs(2000) .build(); DefaultJedisClientConfig config = DefaultJedisClientConfig.builder() .authXManager(new AuthXManager(tokenAuthConfig)) .ssl(true) .build(); UnifiedJedis jedis = new UnifiedJedis( new HostAndPort(REDIS_CACHE_HOSTNAME, REDIS_PORT), config); // Test the connection System.out.println(String.format("Database size is %d", jedis.dbSize())); // Simple PING command System.out.println( "\nCache Command : Ping" ); System.out.println( "Cache Response : " + jedis.ping()); // Simple get and put of integral data types into the cache System.out.println( "\nCache Command : GET Message" ); System.out.println( "Cache Response : " + jedis.get("Message")); System.out.println( "\nCache Command : SET Message" ); System.out.println( "Cache Response : " + jedis.set("Message", "Hello! The cache is working from Java!")); // Demonstrate "SET Message" executed as expected... System.out.println( "\nCache Command : GET Message" ); System.out.println( "Cache Response : " + jedis.get("Message")); jedis.close(); } }
此程式碼示範如何使用快取主機名稱和金鑰環境變數來連線至 Azure Cache for Redis 執行個體。 此程式碼也會將字串值儲存到快取中,以及擷取其中的字串值。
PING命令也會執行。關閉 App.java 檔案。
建置並執行應用程式
執行下列 Maven 命令,以建置和執行應用程式:
mvn compile exec:java -D exec.mainClass=example.demo.App
在下列輸出中,您可以看到 Message 索引鍵先前有快取的值。 此值已使用 jedis.set 更新為新的值。 該應用程序還執行了命令 PING 。
Cache Command : Ping
Cache Response : PONG
Cache Command : GET Message
Cache Response : Hello! The cache is working from Java!
Cache Command : SET Message
Cache Response : OK
Cache Command : GET Message
Cache Response : Hello! The cache is working from Java!
清理資源
如果您打算繼續進行下一個教學課程,則可以保留在本快速入門中所建立的資源,並重複使用這些資源。
亦或您不再使用快速入門範例應用程式,請刪除本快速入門中建立的 Azure 資源,以免衍生費用。
這很重要
刪除資源群組是無法回復的動作,資源群組和其內的所有資源將會永久刪除。 請確定您不會不小心刪除錯誤的資源群組或資源。 如果您是在包含需保留資源的現有資源群組內部,建立用來裝載此範例的資源,則可以個別刪除每個資源,而不必刪除整個資源群組。
登入 Azure 入口網站,然後選取 [資源群組]。
在 [依名稱篩選] 文字方塊中,輸入您的資源群組名稱。 本文的指示是使用名為
TestResources的資源群組。 在結果清單中的目標資源群組上方,選取 [測試資源],然後按一下 [刪除資源群組]。輸入您的資源群組名稱以確認刪除,然後選取 [刪除]。
片刻過後,系統便會刪除該資源群組及其所有內含的資源。
後續步驟
在本快速入門中,您已了解如何從 Java 應用程式使用 Azure Cache for Redis。 請繼續閱讀下一個快速入門,以搭配使用 Azure Cache for Redis 與 ASP.NET Web 應用程式。