Dela via


Använda Azure Redis Cache på våren

Azure Cache for Redis tillhandahåller ett minnesinternt datalager baserat på Redis-programvaran. Redis förbättrar prestanda och skalbarhet för ett program som använder serverdelsdatalager kraftigt.

Den här självstudien visar hur du använder en Redis-cache för att lagra och hämta data i ett Spring Boot-program.

I den här självstudien innehåller vi två autentiseringsmetoder: Microsoft Entra-autentisering och Redis-autentisering. Fliken Lösenordslös visar Microsoft Entra-autentiseringen och fliken Lösenord visar Redis-autentiseringen.

Microsoft Entra-autentisering är en mekanism för att ansluta till Azure Cache for Redis med hjälp av identiteter som definierats i Microsoft Entra-ID. Med Microsoft Entra-autentisering kan du hantera databasanvändares identiteter och andra Microsoft usluge på en central plats, vilket förenklar behörighetshanteringen.

Redis-autentisering använder lösenord i Redis. Om du väljer att använda lösenord som autentiseringsuppgifter måste du hantera lösenorden själv.

Förutsättningar

  • En Azure-prenumeration – skapa en kostnadsfritt.

  • Java Development Kit (JDK) version 17 eller senare.

  • Apache Maven, version 3.0 eller senare.

  • cURL eller ett liknande HTTP-verktyg för att testa funktioner.

  • En Redis-cacheinstans. Om du inte har någon kan du läsa Snabbstart: Skapa en Redis-cache med öppen källkod.

  • Ett Spring Boot-program. Om du inte har ett skapar du ett Maven-projekt med Spring Initializr. Var noga med att välja Maven Project och under Beroenden lägger du till Spring Web - och Spring Data Reactive Redis-beroenden och väljer sedan Java version 8 eller senare.

Cachelagring av data till Azure Cache for Redis

Med en Azure Cache for Redis-instans kan du cachelagrat data med Spring Cloud Azure.

Om du vill installera Spring Cloud Azure Starter Data Redis med Lettuce-modulen lägger du till följande beroenden i din pom.xml-fil :

<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>

Kommentar

Den här strukturlistan (BOM) bör konfigureras i avsnittet i <dependencyManagement> din pom.xml-fil . Den här konfigurationen säkerställer att alla Spring Cloud Azure-beroenden använder samma version. Mer information om vilken version som används för den här strukturlistan finns i Vilken version av Spring Cloud Azure ska jag använda.

Koda appen

Om du vill använda en Redis-cache för att lagra och hämta data konfigurerar du programmet med hjälp av följande steg:

  1. Konfigurera Redis-cacheautentiseringsuppgifter i konfigurationsfilen application.properties , som du ser i följande exempel.

    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
    

    Kommentar

    Om du vill hämta värdet för usernameföljer du anvisningarna i avsnittet Aktivera Microsoft Entra-ID-autentisering i cacheminnet i Använd Microsoft Entra-ID för cacheautentisering och kopierar användarnamnsvärdet.

  2. Redigera startklassfilen för att visa följande innehåll. Den här koden lagrar och hämtar data.

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

Starta sedan programmet. Programmet hämtar data från Din Redis-cache. Du bör se loggar som liknar följande exempel:

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

Distribuera till Azure Spring Apps

Nu när Spring Boot-programmet körs lokalt är det dags att flytta det till produktion. Azure Spring Apps gör det enkelt att distribuera Spring Boot-program till Azure utan några kodändringar. Tjänsten hanterar infrastrukturen för Spring-program så att utvecklare kan fokusera på sin kod. Azure Spring Apps tillhandahåller livscykelhantering med omfattande övervakning och diagnostik, konfigurationshantering, tjänstidentifiering, CI/CD-integrering, blågröna distributioner med mera. Information om hur du distribuerar ditt program till Azure Spring Apps finns i Distribuera ditt första program till Azure Spring Apps.

Nästa steg

Om du vill veta mer om Spring och Azure kan du fortsätta till dokumentationscentret för Spring i Azure.