Een Spring Boot-toepassing verbinden met Azure Cache voor Redis

Deze zelfstudie laat zien hoe u Azure Cache voor Redis kunt gebruiken om gegevens op te slaan en op te halen in een Spring Boot-toepassing. Met behulp van Azure Cache voor Redis kunt u de prestaties en schaalbaarheid verbeteren voor toepassingen die sterk afhankelijk zijn van back-endgegevensarchieven.

In deze handleiding behandelen we twee verificatiemethoden: Microsoft Entra-verificatie en Redis-verificatie. Op het tabblad Wachtwoordloos ziet u de Microsoft Entra-verificatie en op het tabblad Wachtwoord wordt de Redis-verificatie weergegeven.

Microsoft Entra-verificatie is een mechanisme voor het maken van verbinding met Azure Cache voor Redis met behulp van identiteiten die zijn gedefinieerd in Microsoft Entra-id. Met Microsoft Entra-verificatie kunt u databasegebruikersidentiteiten en andere Microsoft-services beheren op een centrale locatie, wat het beheer van machtigingen vereenvoudigt.

Redis-verificatie maakt gebruik van wachtwoorden in Redis. Als u ervoor kiest om wachtwoorden als referenties te gebruiken, moet u de wachtwoorden zelf beheren.

Voorwaarden

Cachegegevens in Azure Cache voor Redis

Met behulp van een Azure Cache voor Redis-exemplaar kunt u gegevens in de cache opslaan met behulp van Spring Cloud Azure.

Als u de Spring Cloud Azure Starter Data Redis-module met Lettuce wilt installeren, voegt u de volgende afhankelijkheden toe aan uw pom.xml-bestand:

<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>org.springframework.boot</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>7.4.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Notitie

Configureer deze Bill of Material (BOM) in de sectie <dependencyManagement> van uw pom.xml-bestand. Deze configuratie zorgt ervoor dat alle Spring Cloud-Azure afhankelijkheden dezelfde versie gebruiken. Zie Welke versie van Spring Cloud Azure moet ik gebruikenvoor meer informatie over de versie die voor deze BOM wordt gebruikt.

Codeer de toepassing

Als u een Redis-cache wilt gebruiken om gegevens op te slaan en op te halen, configureert u de toepassing met behulp van de volgende stappen:

  1. Configureer redis-cachereferenties in het application.properties configuratiebestand, zoals wordt weergegeven in het volgende voorbeeld.

    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
    

    Notitie

    Om de waarde voor usernamete krijgen, volgt u de instructies in de sectie 'Microsoft Entra ID-verificatie inschakelen op uw cache' van 'Gebruik Microsoft Entra ID voor cacheverificatie', en kopieert u de gebruikersnaam waarde.

  2. Bewerk het opstartklassebestand om de volgende inhoud weer te geven. Met deze code worden gegevens opgeslagen en opgehaald.

    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));
        }
    
    }
    

Start vervolgens de toepassing. De toepassing haalt gegevens op uit uw Redis-cache. U ziet logboeken die vergelijkbaar zijn met het volgende voorbeeld:

Add a key is done
Return the value from the cache: Hello World

Implementeren in Azure Spring Apps

Nu de Spring Boot-toepassing lokaal wordt uitgevoerd, is het tijd om deze naar productie te verplaatsen. Azure Spring Apps- maakt het eenvoudig om Spring Boot-toepassingen te implementeren in Azure zonder codewijzigingen. De service beheert de infrastructuur van Spring-toepassingen, zodat ontwikkelaars zich kunnen richten op hun code. Azure Spring Apps biedt levenscyclusbeheer met uitgebreide bewaking en diagnose, configuratiebeheer, servicedetectie, CI/CD-integratie, blauwgroene implementaties en meer. Zie Uw eerste toepassing implementeren in Azure Spring Appsom uw toepassing te implementeren in Azure Spring Apps.

Volgende stappen

Ga naar het Documentatiecentrum van Spring op Azure voor meer informatie over Spring en Azure.