次の方法で共有


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 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 を使用してデータを格納および取得するには、次の手順を使用してアプリケーションを構成します。

  1. 次の例に示すように、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
    

    手記

    usernameの値を取得するには、「キャッシュ認証に Microsoft Entra ID を使用する」の「キャッシュ での Microsoft Entra ID 認証の有効化」セクションの手順に従い、のユーザー名 値をコピーします。

  2. スタートアップ クラス ファイルを編集して、次の内容を表示します。 このコードは、データを格納および取得します。

    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 の詳細については、Spring on Azure ドキュメント センターに進んでください。