你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:在 Java 中使用 Azure Cache for Redis
在本快速入门中,你将使用 Jedis Redis 客户端将 Azure Cache for Redis 合并到 Java 应用中。 你的缓存是可通过 Azure 中的任何应用程序进行访问的安全专用缓存。
跳到 GitHub 上的代码
克隆 GitHub 上的存储库 Java 快速入门。
先决条件
- Azure 订阅 - 创建免费帐户
- Apache Maven
创建 Azure Redis 缓存
若要创建缓存,请登录到 Azure 门户。 在门户菜单上,选择“创建资源”。
在“入门”页上的搜索框中键入“Azure Cache for Redis”。 在搜索结果中找到“Azure Cache for Redis”,然后选择“创建”。
在“新建 Redis 缓存”窗格的“基本信息”选项卡上,配置缓存的以下设置:
设置 操作 说明 订阅 选择 Azure 订阅。 用于创建 Azure Cache for Redis 的新实例的订阅。 资源组 选择一个资源组,或者选择“新建”并输入新的资源组名称。 要在其中创建缓存和其他资源的资源组的名称。 将所有应用资源放入一个资源组可以轻松地统一管理或删除这些资源。 DNS 名称 输入唯一名称。 缓存名称必须是包含 1 到 63 个字符的字符串,只能包含数字、字母和连字符。 该名称必须以数字或字母开头和结尾,且不能包含连续的连字符。 缓存实例的主机名为 \<DNS name>.redis.cache.windows.net
。位置 选择一个位置。 一个靠近其他使用缓存的服务的 Azure 区域。 缓存 SKU 选择 SKU。 此 SKU 决定可用于缓存的大小、性能和功能参数。 有关详细信息,请参阅 Azure Cache for Redis 概述。 缓存大小 选择缓存大小。 有关详细信息,请参阅 Azure Cache for Redis 概述。 选择“网络”选项卡,或选择“下一步:网络”。
在“网络”选项卡上,选择用于缓存的连接方法。
选择“高级”选项卡,或选择“下一步:高级”。
在“高级”窗格中,根据以下信息验证或选择身份验证方法:
- 默认情况下,对于新的“基本”、“标准”或“高级”缓存,“Microsoft Entra 身份验证”将处于启用状态,而“访问密钥身份验证”则处于禁用状态。
- 对于“基本”或“标准”缓存,可以选择非 TLS 端口的选项。
- 对于“标准”和“高级”缓存,可以选择启用可用性区域。 创建缓存后,无法禁用可用性区域。
- 对于“高级”缓存,请配置非 TLS 端口、群集、托管标识和数据持久性的设置。
重要
为了获得最佳安全性,我们建议你在可能的情况下使用 Microsoft Entra ID 和托管标识来授权针对缓存的请求。 与共享访问密钥授权相比,使用 Microsoft Entra ID 和托管标识进行授权提供了更高的安全性和易用性。 若要详细了解如何将托管标识与缓存配合使用,请参阅使用 Microsoft Entra ID 进行缓存身份验证。
(可选)选择“标记”选项卡或选择“下一步: 标记”。
(可选)如果希望对缓存资源进行分类,请在“标记”选项卡中输入标记名称和值。
选择“查看 + 创建”按钮。
在“查看 + 创建”选项卡上,Azure 会自动验证你的配置。
显示绿色的“已通过验证”消息后,选择“创建” 。
新的缓存部署需要几分钟的时间。 可以在 Azure Cache for Redis 的“概述”窗格上监视部署进度。 如果“状态”显示为“正在运行”,则表示该缓存可供使用。
从 Azure 门户检索主机名、端口和访问密钥
若要连接到你的 Azure Cache for Redis 服务器,缓存客户端需要该缓存的主机名、端口和密钥。 在某些客户端中,这些项的名称可能略有不同。 可以从 Azure 门户检索主机名、端口和访问密钥。
若要获取访问密钥,请从“资源”菜单中选择“身份验证”。 然后,选择“访问密钥”选项卡。
若要获取缓存的主机名和端口,请从“资源”菜单中选择“概述”。 主机名的格式为 <DNS 名称>.redis.cache.windows.net。
设置工作环境
根据操作系统,为之前记下的主机名和主访问密钥添加环境变量。 打开命令提示符或终端窗口,设置以下值:
export REDISCACHEHOSTNAME=<your-host-name>.redis.cache.windows.net
export REDISCACHEKEY=<your-primary-access-key>
将占位符替换为以下值:
<your-host-name>
:在 Azure 门户中从 Azure Cache for Redis 资源的“属性”部分获取的 DNS 主机名。<your-primary-access-key>
:在 Azure 门户中从 Azure Cache for Redis 资源的“访问密钥”部分获取的主访问密钥。
了解 Java 示例
在本示例中,你使用 Maven 运行快速入门应用。
切换到新的 redistest 项目目录。
打开 pom.xml 文件。 在文件中,你会看到 Jedis 的依赖项:
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>4.1.0</version> <type>jar</type> <scope>compile</scope> </dependency>
关闭 pom.xml 文件。
打开 App.java,将代码替换为以下代码:
package example.demo; import redis.clients.jedis.DefaultJedisClientConfig; import redis.clients.jedis.Jedis; /** * Redis test * */ public class App { public static void main( String[] args ) { boolean useSsl = true; String cacheHostname = System.getenv("REDISCACHEHOSTNAME"); String cachekey = System.getenv("REDISCACHEKEY"); // Connect to the Azure Cache for Redis over the TLS/SSL port using the key. Jedis jedis = new Jedis(cacheHostname, 6380, DefaultJedisClientConfig.builder() .password(cachekey) .ssl(useSsl) .build()); // Perform cache operations using the cache connection object... // 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")); // Get the client list, useful to see if connection list is growing... System.out.println( "\nCache Command : CLIENT LIST" ); System.out.println( "Cache Response : " + jedis.clientList()); jedis.close(); } }
此代码演示如何使用缓存主机名和密钥环境变量连接到 Azure Redis 缓存实例。 此代码还在缓存中存储和检索字符串值。 还执行了
PING
和CLIENT LIST
命令。关闭 App.java。
生成并运行应用
首先,如果尚未如上所述设置环境变量,则必须完成该设置。
执行以下 Maven 命令来生成并运行应用:
在以下输出中,可以看到 Message
键之前有一个缓存值。 该值已更新为使用 jedis.set
的新值。 应用还执行了 PING
和 CLIENT LIST
命令。
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!
Cache Command : CLIENT LIST
Cache Response : id=777430 addr= :58989 fd=22 name= age=1 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 ow=0 owmem=0 events=r cmd=client numops=6
清理资源
如果想要继续使用快速入门代码,可以保留本快速入门中创建的资源,以便重复使用。
如果已完成快速入门示例应用程序,可以删除本快速入门中创建的 Azure 资源,以免产生费用。
重要
删除资源组的操作不可逆,资源组以及其中的所有资源将被永久删除。 请确保不会意外删除错误的资源组或资源。 如果在现有资源组(其中包含要保留的资源)中为托管此示例创建了资源,可单独删除每个资源,而不是删除资源组。
登录到 Azure 门户,然后选择“资源组”。
在“按名称筛选”文本框中键入资源组的名称。 本文的说明使用了名为 TestResources 的资源组。 在结果列表中的资源组上,选择“...”,然后选择“删除资源组” 。
键入资源组的名称来确认删除,然后选择“删除”。
片刻之后,将会删除该资源组及其包含的所有资源。
后续步骤
本快速入门介绍了如何通过 Java 应用程序使用 Azure Redis 缓存。 请继续学习下一个快速入门,将 Azure Redis 缓存与 ASP.NET Web 应用配合使用。