このクイック スタートでは、 Jedis Redis クライアントを使用して Azure Managed Redis を Java アプリに組み込みます。 キャッシュは、Azure 内の任意のアプリケーションからアクセスできるセキュリティで保護された専用キャッシュです。
GitHub のコードにスキップする
GitHub でリポジトリ Java クイック スタートを複製します。
[前提条件]
- Azure サブスクリプション - 無料アカウントを作成する
- Apache Maven
Azure Managed Redis インスタンスを作成する
Azure Managed Redis インスタンスを作成するには、Azure portal にサインインし、[リソースの 作成] を選択します。
[ リソースの作成 ] ページで、検索ボックスに 「Azure Managed Redis 」と入力します。
[Azure Managed Redis] タイルを選択し、[作成] を選択します。
[ Azure Managed Redis インスタンスの作成 ] ウィンドウで、[ 基本 ] タブで新しいキャッシュの設定を構成します。
設定 値の選択 説明 サブスクリプション ドロップダウンで、ご自身のサブスクリプションを選択します。 この新しい Azure Managed Redis インスタンスが作成されるサブスクリプション。 リソース グループ ドロップ ダウンでリソース グループを選択するか、[新規作成] を選択し、新しいリソース グループの名前を入力します。 その中にキャッシュやその他のリソースを作成するリソース グループの名前。 すべてのアプリ リソースを 1 つのリソース グループに配置することで、それらをまとめて簡単に管理または削除できます。 名前 リージョンで一意の名前を入力します。 キャッシュ名は、"キャッシュのリージョン名と組み合わせた" ときに 1 から 63 文字の文字列で、数字、英字、ハイフンのみを使用する必要があります。 (キャッシュ名の長さが 45 文字未満なら、現在使用可能なすべてのリージョンで有効なはずです。) 名前の先頭と末尾には数字または英字を使用する必要があり、連続するハイフンを含めることはできません。 キャッシュ インスタンスのホスト名は \<DNS name\>.\<Azure region\>.redis.azure.netです。リージョン ドロップ ダウンで場所を選択します。 Azure Managed Redis は、選択した Azure リージョンで使用できます。 データ層 高パフォーマンスの場合 はメモリ内 を選択し、パフォーマンスの低いキャッシュには Flash を選択します メモリ内層には、 Balanced、 Memory Optimized、 Compute Optimized が含まれます。 フラッシュ層を使用して、インメモリ (RAM) およびディスク上 (SSD) データ ストレージを使用します。 キャッシュ サイズ ドロップダウンしてサイズを選択します。 キャッシュ サイズは層によって異なります。 最小サイズは Balanced レベルです。 最大サイズのメモリ内層は、メモリ最適化レベルです。 パフォーマンス ドロップダウンを選択し、パフォーマンス設定を選択します。 パフォーマンスは、vCPU の数によって異なります。 vCPU の数は、レベルによって異なります。 コンピューティング最適化には、最も多くの vCPU があります。 適切なパフォーマンス レベルの選択に関するガイダンスについては、「適切な レベルの選択」を参照してください。
重要
350 GB を超えるストレージを使用するすべてのインメモリ層は、メモリ最適化 M500 以上、バランス B500 以上、コンピュート最適化 X500 以上を含む、パブリックプレビュー段階にあります。 これらのレベル以上はすべてパブリック プレビュー段階です。
フラッシュ最適化レベルはすべてパブリック プレビュー段階です。
[次へ: ネットワーク] を選択し、[パブリック アクセスを無効にしてプライベート アクセスを使用する] または [すべてのネットワークからのパブリック アクセスを有効にする] を選択します。
[次へ: アクティブ geo レプリケーション] を選択します。 アクティブ geo レプリケーションを使用するには、プロビジョニング中に有効にする必要があります。 アクティブ geo レプリケーションのないキャッシュは、後でアクティブ geo レプリケーション グループに追加したり、アクティブ geo レプリケーション グループに参加したりすることはできません。 詳細については、「Azure Managed Redis インスタンスのアクティブ geo レプリケーションを構成する」を参照してください。
[ 次へ: 詳細設定 ] タブを選択します。
インスタンスに追加するすべての Redis モジュール を構成します。
クラスタリング ポリシーの設定:
- RedisSearch またはその他のモジュールを使用するために Enterprise を使用する
- クラスター化キャッシュには OSS を使用します。
- 非クラスター化キャッシュには非クラスター化 (プレビュー) を使用します。
クラスタリング ポリシーの選択方法の詳細については、クラスター ポリシーに関する記事を参照してください。
新しいマネージド キャッシュの場合、既定で次のように設定されています:
- Microsoft Entra ID は有効になっています。
- [アクセス キー認証] は、セキュリティ上の理由から無効になっています。
重要
キャッシュ インスタンスを作成した後でモジュールを変更することはできません。 モジュールは、Azure Managed Redis インスタンスを作成するときに有効にする必要があります。 キャッシュの作成後にモジュールの構成を有効にするオプションはありません。
重要
最適なセキュリティのため、可能であれば、キャッシュに対する要求を認可するのに Microsoft Entra ID とマネージド ID を使うことをお勧めします。 Microsoft Entra ID とマネージド ID を使う認可は、共有アクセス キーの認可より、セキュリティと使いやすさの点で優れています。 キャッシュでのマネージド ID の使用について詳しくは、キャッシュ認証への Microsoft Entra ID の使用に関する記事をご覧ください。
重要
Azure Managed Redis インスタンスのクラスタリング ポリシーは、作成後に変更することはできません。 RediSearch を使用している場合、Enterprise クラスター ポリシーは必須であり、サポートされている唯一の削除ポリシーは
NoEvictionです。重要
geo レプリケーション グループでこのキャッシュ インスタンスを使用している場合、インスタンスの作成後に削除ポリシーを変更することはできません。 キャッシュを作成する前に、プライマリ ノードの削除ポリシーを確認してください。 アクティブ geo レプリケーションの詳細については、「アクティブ geo レプリケーションの前提条件」を参照してください。
[次へ: タグ] を選択してスキップします。
[ 次へ: 確認と作成] を選択します。
設定を確認し、 [作成] を選択します。
Redis インスタンスの作成には数分かかります。 Azure Managed Redis の [概要] ページで進行状況を監視できます。 [状態] に "実行中" と表示されている場合は、キャッシュを使用する準備ができています。
作業環境の設定
次の手順は、Java アプリの作業環境を設定する方法を示しています。
export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export REDIS_CACHE_PORT=10000
プレースホルダーを次の値に置き換えます。
<your-host-name>: DNS ホスト名。 キャッシュのホスト名とポートを取得するには、[リソース] メニューから [概要] を選択します。 ホスト名の形式は<DNS name>.redis.cache.windows.netとなります。
<your-client-id>: Azure AD アプリケーション登録のアプリケーション (クライアント) ID。<your-client-secret>: Azure AD アプリケーション登録のクライアント シークレット。<your-tenant-id>: Azure Active Directory テナント ID。注
上記の例では、クライアント シークレット認証を使用しています。 コードの
redis-authx-entraid構成を変更することで、マネージド ID やクライアント証明書などの他の認証方法を使用するように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 Managed 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 Managed 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 Managed 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 portal にサインインし、[リソース グループ] を選択します。
[名前でフィルター] ボックスにリソース グループの名前を入力します。 この記事の手順では、
TestResourcesという名前のリソース グループを使用しました。 結果一覧でリソース グループの [テスト リソース]、[リソース グループの削除] の順に選択します。削除を確認するためにリソース グループの名前を入力し、[削除] を選択します。
しばらくすると、リソース グループとそこに含まれているすべてのリソースが削除されます。
次のステップ
このクイック スタートでは、Java アプリケーションから Azure Managed Redis を使用する方法について説明しました。