Bagikan melalui


Menggunakan Azure Redis Cache di Musim Semi

Azure Cache for Redis menyediakan penyimpanan data dalam memori berdasarkan perangkat lunak Redis. Redis meningkatkan performa dan skalabilitas aplikasi yang sangat menggunakan penyimpanan data backend.

Tutorial ini menunjukkan cara menggunakan cache Redis untuk menyimpan dan mengambil data dalam aplikasi Spring Boot.

Dalam tutorial ini, kami menyertakan dua metode autentikasi: autentikasi Microsoft Entra dan autentikasi Redis. Tab Tanpa Kata Sandi memperlihatkan autentikasi Microsoft Entra dan tab Kata Sandi memperlihatkan autentikasi Redis.

Autentikasi Microsoft Entra adalah mekanisme untuk menyambungkan ke Azure Cache for Redis menggunakan identitas yang ditentukan dalam ID Microsoft Entra. Dengan autentikasi Microsoft Entra, Anda dapat mengelola identitas pengguna database dan layanan Microsoft lain di lokasi pusat, yang menyederhanakan manajemen izin.

Autentikasi Redis menggunakan kata sandi di Redis. Jika Anda memilih untuk menggunakan kata sandi sebagai kredensial, Anda perlu mengelola kata sandi sendiri.

Prasyarat

  • Langganan Azure - membuat secara gratis.

  • Java Development Kit (JDK) versi 17 atau yang lebih tinggi.

  • Apache Maven, versi 3.0 atau lebih tinggi.

  • cURL atau utilitas HTTP serupa untuk menguji fungsionalitas.

  • Instans cache Redis. Jika Anda tidak memilikinya, lihat Mulai Cepat: Membuat cache Redis sumber terbuka.

  • Aplikasi Spring Boot. Jika Anda tidak memilikinya, buat proyek Maven dengan Spring Initializr. Pastikan untuk memilih Proyek Maven dan, di bawah Dependensi, tambahkan dependensi Spring Web dan Spring Data Reactive Redis , lalu pilih Java versi 8 atau yang lebih tinggi.

Penembolokan Data ke Azure Cache for Redis

Dengan instans Azure Cache for Redis, Anda dapat menyimpan data menggunakan Spring Cloud Azure.

Untuk menginstal Spring Cloud Azure Starter Data Redis dengan modul Lettuce, tambahkan dependensi berikut ke file pom.xml Anda:

<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.16.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Catatan

Bill of Material (BOM) ini harus dikonfigurasi di bagian <dependencyManagement> file pom.xml Anda. Konfigurasi ini memastikan bahwa semua dependensi Spring Cloud Azure menggunakan versi yang sama. Untuk informasi selengkapnya tentang versi yang digunakan untuk BOM ini, lihat Versi Spring Cloud Azure mana yang Harus Saya Gunakan.

Kodekan aplikasi

Untuk menggunakan cache Redis untuk menyimpan dan mengambil data, konfigurasikan aplikasi dengan menggunakan langkah-langkah berikut:

  1. Konfigurasikan kredensial cache Redis dalam file konfigurasi application.properties , seperti yang ditunjukkan dalam contoh berikut.

    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
    

    Catatan

    Untuk mendapatkan nilai untuk username, ikuti instruksi di bagian Aktifkan autentikasi ID Microsoft Entra di cache Anda di Gunakan ID Microsoft Entra untuk autentikasi cache, dan salin nilai nama pengguna.

  2. Edit file kelas startup untuk menampilkan konten berikut. Kode ini menyimpan dan mengambil 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));
        }
    
    }
    

Kemudian, mulai aplikasi. Aplikasi mengambil data dari cache Redis Anda. Anda akan melihat log yang mirip dengan contoh berikut:

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

Sebarkan ke Azure Spring Apps

Sekarang setelah Anda memiliki aplikasi Spring Boot yang berjalan secara lokal, saatnya untuk memindahkannya ke produksi. Azure Spring Apps memudahkan penyebaran aplikasi Spring Boot ke Azure tanpa perubahan kode apa pun. Layanan ini mengelola infrastruktur aplikasi Spring sehingga pengembang dapat fokus pada kode mereka. Azure Spring Apps menyediakan manajemen siklus hidup menggunakan pemantauan dan diagnostik yang komprehensif, manajemen konfigurasi, penemuan layanan, integrasi CI/CD, penyebaran biru-hijau, dan banyak lagi. Untuk menyebarkan aplikasi Anda ke Azure Spring Apps, lihat Menyebarkan aplikasi pertama Anda ke Azure Spring Apps.

Langkah berikutnya

Untuk mempelajari selengkapnya tentang Spring dan Azure, lanjutkan ke pusat dokumentasi Spring di Azure.