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 Project を選択し、依存関係で、Spring Web および Spring Data Reactive Redis の依存関係を追加してから、Java バージョン 8 以降を選択します。
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>
手記
この部品表 (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=10000 spring.data.redis.username=<your-redis-username> spring.data.redis.ssl.enabled=true spring.data.redis.azure.passwordless-enabled=true
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
スタートアップ クラス ファイルを編集して、次の内容を表示します。 このコードは、データを格納および取得します。
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 と Azure の詳細については、Spring on Azure ドキュメント センターに進んでください。