Java で Azure Redis Cache を使用する方法

Azure Redis Cache を使用すると、Microsoft が管理している専用の Redis Cache にアクセスできます。 キャッシュは、Microsoft Azure 内の任意のアプリケーションからアクセスできます。

このトピックでは、Java を使用して Azure Redis Cache を使用する方法を説明します。

前提条件

Jedis - Redis 用 Java クライアント

このチュートリアルでは Jedis を使用しますが、 http://redis.io/clientsに記載されている任意の Java クライアントを使用できます。

Azure で Redis Cache を作成する

キャッシュを作成するには、まず Azure Portal にサインインし、[新規] > [データベース] > [Redis Cache] の順にクリックします。

注意

Azure アカウントがない場合は、数分あれば Azure アカウントを無料で作成 することができます。

新しいキャッシュ

注意

キャッシュは、Azure ポータルだけでなく、Resource Manager テンプレート、PowerShell、または Azure CLI を使用して作成することもできます。

[Redis Cache の新規作成] ブレードで、必要なキャッシュ構成を指定します。

キャッシュの作成

  • キャッシュ エンドポイントに使用する一意のキャッシュ名を [DNS 名] に入力します。 キャッシュ名は 1 ~ 63 文字の文字列で、数字、英字、- 文字のみを使用する必要があります。 キャッシュ名の先頭と末尾には - 文字を使用できません。また、連続する - 文字は無効です。
  • [サブスクリプション]で、キャッシュに使用する Azure サブスクリプションを選択します。 アカウントにサブスクリプションが 1 つしかない場合は自動的に選択されるため、 [サブスクリプション] ドロップダウン リストは表示されません。
  • [リソース グループ]で、キャッシュのリソース グループを選択または作成します。 詳細については、リソース グループを使用した Azure リソースの管理に関するページを参照してください。
  • [場所] を使用して、キャッシュのホストの地理的位置を指定します。 パフォーマンスを最大限に引き出すために、キャッシュは、キャッシュ クライアント アプリケーションと同じリージョンに作成することを強くお勧めします。
  • [価格レベル] を使用して、必要なキャッシュ サイズと機能を選択します。
  • Redis クラスター では、53 GB を超えるキャッシュを作成でき、複数の Redis ノード間でデータを共有することもできます。 詳細については、「 Premium Azure Redis Cache のクラスタリングの構成方法」を参照してください。
  • Redis の永続化 を使用して、Azure ストレージ アカウントにキャッシュを保持できます。 永続化の構成手順については、「 Premium Azure Redis Cache の永続性の構成方法」を参照してください。
  • Virtual Network では、指定された Azure Virtual Network 内にあるクライアントのみにキャッシュへのアクセス権を制限することで、セキュリティと分離が強化されます。 サブネット、アクセス制御ポリシー、およびその他の Redis へのアクセスをさらに制限する機能を始め、VNet のすべての機能を使用できます。 詳細については、「 Premium Azure Redis Cache の Virtual Network のサポートを構成する方法」を参照してください。
  • 新しいキャッシュでは、SSL を使用しないアクセスが既定で無効になっています。 非 SSL ポートを有効にするには、[ポート 6379 のブロックを解除 (SSL 暗号化されていません)] をオンにします。

新しいキャッシュ オプションを構成したら、 [作成]をクリックします。 キャッシュが作成されるまで数分かかる場合があります。 状態を確認するには、スタート画面で進行状況を監視してください。 キャッシュが作成されると、新しいキャッシュの状態が 実行中 になって、 既定の設定で使用できるようになります。

作成されたキャッシュ

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

Azure Redis Cache のインスタンスに接続するには、キャッシュ クライアントにキャッシュのホスト名、ポート、およびキーが必要です。 一部のクライアントは、若干異なる名前で、これらの項目を参照できます。 この情報は、Azure Portal で取得するか、Azure CLI などのコマンドライン ツールを使用して取得することができます。

Azure Portal を使用して、ホスト名、ポート、およびアクセス キーを取得する

Azure Portal を使用してホスト名、ポート、およびアクセス キーを取得するには、Azure Portal でキャッシュを参照し、[リソース] メニューで [アクセス キー] および [プロパティ] をクリックします。

Redis cache settings

Azure CLI を使用して、ホスト名、ポート、およびアクセス キーを取得する

Azure CLI 2.0 を使用してホスト名とポートを取得するには az redis show を呼び出し、キーを取得するには az redis list-keys を呼び出します。 次のスクリプトでは、これらの 2 つのコマンドを呼び出し、コンソールにホスト名、ポート、およびキーを表示します。

#/bin/bash

# Retrieve the hostname, ports, and keys for contosoCache located in contosoGroup

# Retrieve the hostname and ports for an Azure Redis Cache instance
redis=($(az redis show --name contosoCache --resource-group contosoGroup --query [hostName,enableNonSslPort,port,sslPort] --output tsv))

# Retrieve the keys for an Azure Redis Cache instance
keys=($(az redis list-keys --name contosoCache --resource-group contosoGroup --query [primaryKey,secondaryKey] --output tsv))

# Display the retrieved hostname, keys, and ports
echo "Hostname:" ${redis[0]}
echo "Non SSL Port:" ${redis[2]}
echo "Non SSL Port Enabled:" ${redis[1]}
echo "SSL Port:" ${redis[3]}
echo "Primary Key:" ${keys[0]}
echo "Secondary Key:" ${keys[1]}

このスクリプトの詳細については、「Get the hostname, ports, and keys for Azure Redis Cache (Azure Redis Cache のホスト名、ポート、およびキーを取得する)」を参照してください。 Azure CLI 2.0 の詳細については、「Install Azure CLI 2.0 (Azure CLI 2.0 のインストール)」と「Get started with Azure CLI 2.0 (Azure CLI 2.0 の使用開始)」を参照してください。

SSL を使用してキャッシュに安全に接続する

jedis の最新のビルドでは、SSL を使用した Azure Redis Cache への接続をサポートしています。 次の例では、SSL エンドポイント 6380 を使用して Azure Redis Cache に接続する方法を示しています。 <name> をキャッシュの名前に、<key> を前の「ホスト名とアクセス キーを取得する」セクションで説明したプライマリまたはセカンダリ キーに置き換えます。

boolean useSsl = true;
/* In this line, replace <name> with your cache name: */
JedisShardInfo shardInfo = new JedisShardInfo("<name>.redis.cache.windows.net", 6380, useSsl);
shardInfo.setPassword("<key>"); /* Use your access key. */

注意

新しい Azure Redis Cache インスタンスに対して非 SSL ポートは無効になっています。 SSL をサポートしていない別のクライアントを使用している場合は、非 SSL ポートを有効にする方法に関するページをご覧ください。

キャッシュに何か追加し、取得する

package com.mycompany.app;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo;

public class App
{
  public static void main( String[] args )
  {
    boolean useSsl = true;
    /* In this line, replace <name> with your cache name: */
    JedisShardInfo shardInfo = new JedisShardInfo("<name>.redis.cache.windows.net", 6380, useSsl);
    shardInfo.setPassword("<key>"); /* Use your access key. */
    Jedis jedis = new Jedis(shardInfo);
    jedis.set("foo", "bar");
    String value = jedis.get("foo");
  }
}

次のステップ