你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:将 Azure Cache for Redis 与 Java 应用配合使用

在本快速入门中,你将使用 Jedis Redis 客户端将 Azure Cache for Redis 整合到 Java 应用中。 你的应用连接到可通过 Azure 中的任何应用程序进行访问的安全专用缓存。

跳到代码

本快速入门使用 Maven 原型功能为 Java 应用生成基架。 本快速入门介绍如何配置代码来创建连接到 Azure Cache for Redis 的工作应用。

如果要直接转到代码,请参阅 GitHub 上的 Java 快速入门示例

先决条件

创建缓存

  1. 若要创建缓存,请登录到 Azure 门户。 在门户菜单上,选择“创建资源”。

    屏幕截图显示了 Azure 门户的左侧导航窗格上突出显示的“创建资源”选项。

  2. 在“入门”窗格上的搜索栏中输入“Azure Cache for Redis”。 在搜索结果中找到“Azure Cache for Redis”,然后选择“创建”

    屏幕截图显示了 Azure 市场,其中的搜索框中包含“Azure Cache for Redis”,突出显示了“创建”按钮。

  3. 在“新建 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 概述
  4. 选择“网络”选项卡,或者选择“下一步: 网络”

  5. 在“网络”选项卡上,选择用于缓存的连接方法。

  6. 选择“高级”选项卡,或者选择“下一步: 高级”

  7. 在“高级”窗格上,根据以下信息验证或选择身份验证方法:

    屏幕截图显示了“高级”窗格和可供选择的选项。

    • 默认情况下,对于新的“基本”、“标准”或“高级”缓存,“Microsoft Entra 身份验证”将处于启用状态,而“访问密钥身份验证”则处于禁用状态。
    • 对于“基本”或“标准”缓存,可以选择非 TLS 端口的选项。
    • 对于“标准”和“高级”缓存,可以选择启用可用性区域。 创建缓存后,无法禁用可用性区域。
    • 对于“高级”缓存,请配置非 TLS 端口、群集、托管标识和数据持久性的设置。

    重要

    为了获得最佳安全性,我们建议你在可能的情况下使用 Microsoft Entra ID 和托管标识来授权针对缓存的请求。 与共享访问密钥授权相比,使用 Microsoft Entra ID 和托管标识进行授权提供了更高的安全性和易用性。 若要详细了解如何将托管标识与缓存配合使用,请参阅使用 Microsoft Entra ID 进行缓存身份验证

  8. (可选)选择“标记”选项卡或选择“下一步: 标记”。

  9. (可选)如果希望对缓存资源进行分类,请在“标记”选项卡中输入标记名称和值

  10. 选择“查看 + 创建”按钮。

    在“查看 + 创建”选项卡上,Azure 会自动验证你的配置

  11. 显示绿色的“已通过验证”消息后,选择“创建” 。

新的缓存部署需要几分钟的时间。 可以在 Azure Cache for Redis 的“概述”窗格上监视部署进度。 如果“状态”显示为“正在运行”,则表示该缓存可供使用。

获取主机名、端口和访问密钥

若要连接到你的 Azure Cache for Redis 服务器,缓存客户端需要该缓存的主机名、端口和访问密钥。 在某些客户端中,这些项的名称可能略有不同。 可以在 Azure 门户中获取主机名、端口和密钥。

  • 若要获取缓存的访问密钥,请执行以下操作:

    1. 在 Azure 门户中转到自己的缓存。
    2. 在服务菜单上的“设置”下,选择“身份验证”
    3. 在“身份验证”窗格上,选择“访问密钥”选项卡
    4. 若要复制访问密钥的值,请选择密钥字段中的“复制”图标。

    屏幕截图显示了如何查找和复制 Azure Cache for Redis 实例的访问密钥。

  • 若要获取缓存的主机名和端口,请执行以下操作:

    1. 在 Azure 门户中转到自己的缓存。
    2. 在服务菜单中,选择“概述”。
    3. 在“概要”下,对于“主机名”,请选择“复制”图标以复制主机名值。 主机名值的形式为 <DNS name>.redis.cache.windows.net
    4. 对于“端口”,请选择“复制”图标以复制端口值。

    屏幕截图显示了如何查找和复制 Azure Cache for Redis 实例的主机名和端口。

设置工作环境

根据操作系统,为上述的主机名和主访问密钥添加环境变量。 在命令提示符窗口或终端窗口中,设置以下值:

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 运行快速入门应用。

  1. 转到新的 redistest 项目目录。

  2. 打开 pom.xml 文件。 在文件中,验证是否显示了 Jedis 的依赖项:

    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>4.1.0</version>
      <type>jar</type>
      <scope>compile</scope>
    </dependency>
    
  3. 关闭 pom.xml 文件。

  4. 打开 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 by 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 Cache for Redis 实例。 此代码还在缓存中存储和检索字符串值。 还执行了 PINGCLIENT LIST 命令。

  5. 关闭 App.java

生成并运行应用

  1. 如上所述设置环境变量:

    export REDISCACHEHOSTNAME=<your-host-name>.redis.cache.windows.net
    export REDISCACHEKEY=<your-primary-access-key>
    
  2. 若要生成并运行应用,请运行以下 Maven 命令:

    mvn compile
    mvn exec:java -D exec.mainClass=example.demo.App
    

在以下输出中,可以看到 Message 键之前有一个缓存值。 已使用 jedis.set 将值更新为一个新值。 应用还执行了 PINGCLIENT 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 资源组。

警告

删除资源组的操作不可逆。 删除一个资源组时,该资源组中的所有资源都会被永久删除。 请确保不会意外删除错误的资源组或资源。 如果在现有资源组(其中具有要保留的资源)内创建了多个资源,可以逐个删除这些资源,而不是删除资源组。

删除资源组

  1. 登录到 Azure 门户,然后选择“资源组”。

  2. 选择要删除的资源组。

    如果有多个资源组,请在“筛选任何字段”中,输入为完成本文创建的资源组的名称。 在搜索结果列表中,选择该资源组。

    屏幕截图显示了要从中选择待删除项的资源组列表。

  3. 选择“删除资源组”

  4. 在“删除资源组”窗格中,输入资源组的名称进行确认,然后选择“删除”。

    屏幕截图显示了要求输入资源名称以确认删除的框。

很快将会删除该资源组及其所有资源。