次の方法で共有


クイック スタート: Java アプリで Azure Cache for Redis を使用する

このクイックスタートでは、Jedis Redis クライアントを使って、Java アプリに Azure Cache for Redis を組み込みます。 アプリは、Azure の任意のアプリケーションからアクセスできるセキュリティで保護された専用キャッシュに接続します。

コードにスキップする

このクイックスタートでは、Maven アーキタイプ機能を使って Java アプリ用のスキャフォールディングを生成します。 このクイックスタートでは、Azure Cache for Redis に接続する動作するアプリを作成するためのコードの構成方法について説明します。

すぐにコードに移動したい場合は、GitHub 上の Java クイックスタート サンプルを参照してください。

前提条件

キャッシュの作成

  1. キャッシュを作成するには、Azure portal にサインインします。 ポータルのメニューで、[リソースの作成] を選びます。

    Azure portal の左側のナビゲーション ウィンドウの [リソースの作成] オプションが強調して示されているスクリーンショット。

  2. [作業の開始] ペインの検索バーに「Azure Cache for Redis」と入力します。 検索結果で Azure Cache for Redis を見つけて、[作成] を選びます。

    検索ボックスに Azure Cache for Redis が入力され、[作成] ボタンが強調されている Azure Marketplace を示すスクリーンショット。

  3. [新しい Redis Cache] ペインの [基本] タブで、以下のキャッシュの設定を構成します。

    設定 アクション 説明
    サブスクリプション Azure サブスクリプションを選択します。 Azure Cache for Redis の新しいインスタンスの作成に使うサブスクリプション。
    リソース グループ リソース グループを選択するか、 [新規作成] を選択し、新しいリソース グループの名前を入力します。 キャッシュや他のリソースを作成するリソース グループの名前。 すべてのアプリ リソースを 1 つのリソース グループに配置することで、それらをまとめて簡単に管理または削除できます。
    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. [詳細] ペインで、以下の情報に基づいて認証方法を確認または選択します。

    [詳細] ペインと選択できるオプションを示すスクリーンショット。

    • 既定では、新しい Basic、Standard、または Premium キャッシュでは、Microsoft Entra 認証が有効になり、アクセス キー認証が無効になります。
    • Basic または Standard キャッシュの場合は、非 TLS ポートを選択できます。
    • Standard および Premium キャッシュの場合は、可用性ゾーンを有効にすることを選択できます。 キャッシュの作成後に可用性ゾーンを無効にすることはできません。
    • Premium キャッシュを利用する場合は、非 TLS ポート、クラスタリング、マネージド ID、データ永続化の設定を構成します。

    重要

    最適なセキュリティのため、可能であれば、キャッシュに対する要求を認可するのに Microsoft Entra ID とマネージド ID を使うことをお勧めします。 Microsoft Entra ID とマネージド ID を使う認可は、共有アクセス キーの認可より、セキュリティと使いやすさの点で優れています。 キャッシュでのマネージド ID の使用について詳しくは、キャッシュ認証への Microsoft Entra ID の使用に関する記事をご覧ください。

  8. (省略可能) [タグ] タブを選ぶか、[次へ: タグ] を選びます。

  9. (省略可能) キャッシュ リソースを分類する場合は、[タグ] タブでタグの名前と値を入力します。

  10. [確認および作成] ボタンを選択します。

    [確認と作成] タブでは、Azure によって構成が自動的に検証されます。

  11. 緑色の検証に成功のメッセージが表示された後、 [作成] を選択します。

新しいキャッシュのデプロイは数分で完了します。 デプロイの進行状況は、Azure Cache for Redis の [概要] ペインで監視できます。 [状態][実行中] と表示されたら、キャッシュを使用できます。

ホスト名、ポート、アクセス キーを取得する

キャッシュ クライアントが Azure Cache for Redis サーバーに接続するには、キャッシュのホスト名、ポート、アクセス キーが必要です。 一部のクライアントでは、これらの項目が少し異なる名前で呼ばれている場合があります。 ホスト名、ポート、キーは Azure portal で取得できます。

  • キャッシュのアクセス キーを取得するには:

    1. Azure portal で、キャッシュに移動します。
    2. サービス メニューの [設定] で、[認証] を選びます。
    3. [認証] ペインで、[アクセス キー] タブを選びます。
    4. アクセス キーの値をコピーするには、キー フィールドの [コピー] アイコンを選びます。

    Azure Cache for Redis のインスタンスのアクセス キーを見つけてコピーする方法を示すスクリーンショット。

  • キャッシュのホスト名とポートを取得するには:

    1. Azure portal で、キャッシュに移動します。
    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 portal の Azure Cache for Redis リソースの [プロパティ] セクションから取得した DNS ホスト名。
  • <your-primary-access-key>:Azure portal の 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 インスタンスに接続する方法が示されています。 コードでは、キャッシュ内の文字列値の格納および取得も行います。 PING および CLIENT 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 を使って新しい値に更新されました。 また、アプリは 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 リソース グループを削除して構いません。

警告

リソース グループを削除すると、元に戻すことができません。 リソース グループを削除すると、そのリソース グループ内のすべてのリソースは完全に削除されます。 間違ったリソース グループやリソースをうっかり削除しないようにしてください。 保持したいリソースを含む既存のリソース グループ内にリソースを作成した場合は、リソース グループを削除するのではなく、各リソースを個別に削除できます。

リソース グループを削除する

  1. Azure portal にサインインし、 [リソース グループ] を選択します。

  2. 削除するリソース グループを選びます。

    多数のリソース グループがある場合は、[任意フィールドのフィルター] に、この記事を完了するために作成したリソース グループの名前を入力します。 検索結果の一覧で、リソース グループを選びます。

    削除するものを選ぶためのリソース グループの一覧を示すスクリーンショット。

  3. [リソース グループの削除] を選択します。

  4. [リソース グループの削除] ペインで、リソース グループの名前を入力して確認した後、[削除] を選びます。

    削除を確認するためにリソース名を入力する必要があるボックスを示すスクリーンショット。

しばらくすると、リソース グループとそのリソースのすべてが削除されます。