Spring で Azure Redis Cache を使用する
Azure Cache for Redis は、Redis ソフトウェアをベースにしたメモリ内データストアを提供します。 Redis では、バックエンドのデータ ストアを多用するアプリケーションのパフォーマンスとスケーラビリティを高めることができます。
このチュートリアルでは、Redis Cache を使用して Spring Boot アプリケーションにデータを格納および取得する方法について説明します。
このチュートリアルには、Microsoft Entra 認証と Redis 認証の 2 つの認証方法が含まれています。 [パスワードレス] タブには Microsoft Entra 認証が表示され、[パスワード] タブには Redis 認証が表示されます。
Microsoft Entra 認証は、Microsoft Entra ID で定義された ID を使用して Azure Cache for Redis に接続するための仕組みです。 Microsoft Entra 認証を使用すると、データベース ユーザーの ID や他の Microsoft サービスを一元管理でき、アクセス許可の管理が容易になります。
Redis 認証では、Redis でパスワードが使用されます。 資格情報としてパスワードを使用する場合は、自分でパスワードを管理する必要があります。
前提条件
Azure サブスクリプション - 無料アカウントを作成します。
Java Development Kit (JDK) バージョン 17 以降。
Apache Maven、バージョン 3.0 以降。
cURL または機能をテストするための類似の HTTP ユーティリティ。
Redis Cache インスタンス。 ない場合は、「クイック スタート: オープンソースの Redis Cache を作成する」を参照してください。
Spring Boot アプリケーション。 ない場合は、Spring Initializr で Maven プロジェクトを作成します。 [Maven プロジェクト] を選択して、[依存関係] で、[Spring Web] および [Spring Data Reactive Redis] 依存関係を追加したら、バージョン 8 以降の Java を選択します。
Azure Cache for Redis へのデータのキャッシュ
Azure Cache for Redis インスタンスを使用すると、Spring Cloud Azure を使用してデータをキャッシュできます。
Spring Cloud Azure Starter Data Redis with Lettuce モジュールをインストールするには、pom.xml ファイルに次の依存関係を追加します。
<dependencies>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-starter-data-redis-lettuce</artifactId>
</dependency>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-dependencies</artifactId>
<version>5.19.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Note
この部品表 (BOM) は、pom.xml ファイルの <dependencyManagement>
セクションで構成する必要があります。 この構成により、すべてのSpring Cloud Azure依存関係が同じバージョンを使用していることが保証されます。 このBOMに使用されるバージョンの詳細については、「Spring Cloud Azureのどのバージョンを使うべきか」を参照してください。
アプリケーションをコーディングする
Redis Cache を使用してデータを格納および取得するには、次の手順を実行してアプリケーションを構成します。
次の例に示すように、application.properties 構成ファイルで Redis Cache 資格情報を構成します。
spring.data.redis.host=<your-redis-name>.redis.cache.windows.net spring.data.redis.port=6380 spring.data.redis.username=<your-redis-username> spring.data.redis.ssl.enabled=true spring.data.redis.azure.passwordless-enabled=true
Note
username
の値を取得するには、「キャッシュ認証に Microsoft Entra ID を使用する」の「キャッシュで Microsoft Entra ID 認証を有効にする」セクションの手順に従って、username 値をコピーします。スタートアップ クラス ファイルを編集して、次の内容を表示します。 このコードは、データを格納および取得します。
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.ValueOperations; @SpringBootApplication public class DemoCacheApplication implements CommandLineRunner { private static final Logger LOGGER = LoggerFactory.getLogger(DemoCacheApplication.class); @Autowired private StringRedisTemplate template; public static void main(String[] args) { SpringApplication.run(DemoCacheApplication.class, args); } @Override public void run(String... args) { ValueOperations<String, String> ops = this.template.opsForValue(); String key = "testkey"; if(!this.template.hasKey(key)){ ops.set(key, "Hello World"); LOGGER.info("Add a key is done"); } LOGGER.info("Return the value from the cache: {}", ops.get(key)); } }
次に、アプリケーションを起動します。 アプリケーションは Redis Cache からデータを取得します。 次の例のようなログが表示されます。
Add a key is done
Return the value from the cache: Hello World
Azure Spring Apps にデプロイする
Spring Boot アプリケーションがローカルで実行されたので、運用環境に移行します。 Azure Spring Apps では、コードを変更せずに、Spring Boot アプリケーションを Azure に簡単にデプロイできます。 Spring アプリケーションのインフラストラクチャはこのサービスによって管理されるため、開発者はコードに専念できます。 Azure Spring Apps では、包括的な監視と診断、構成管理、サービス検出、CI/CD 統合、ブルー/グリーン デプロイなどを使用して、ライフサイクルを管理できます。 Azure Spring Apps にアプリケーションをデプロイするには、「初めてのアプリケーションを Azure Spring Apps にデプロイする」を参照してください。
次のステップ
Spring および Azure の詳細については、Azure ドキュメント センターで引き続き Spring に関するドキュメントをご確認ください。