Konfigurasi Berbasis Harta Spring Data Redis

1. Gambaran keseluruhan

Salah satu tarikan utama Spring Boot adalah bagaimana ia sering mengurangkan konfigurasi pihak ketiga kepada beberapa sifat.

Dalam tutorial ini, kita akan melihat bagaimana Spring Boot mempermudah bekerja dengan Redis.

2. Mengapa Redis?

Redis adalah salah satu kedai struktur data dalam memori yang paling popular. Atas sebab ini, ia dapat digunakan sebagai pangkalan data, cache, dan broker mesej.

Dari segi prestasi, ia terkenal kerana masa tindak balasnya cepat. Hasilnya, ia dapat melakukan operasi ratusan ribu sesaat dan mudah ditingkatkan.

Dan, ia berpasangan dengan aplikasi Spring Boot . Sebagai contoh, kita boleh menggunakannya sebagai cache dalam seni bina perkhidmatan mikro kita. Kami juga dapat menggunakannya sebagai pangkalan data NoSQL.

3. Berlari Redis

Untuk memulakan, mari buat instance Redis menggunakan gambar rasmi Docker mereka.

$ docker run -p 16379:6379 -d redis:6.0 redis-server --requirepass "mypass"

Di atas, kami baru sahaja memulakan contoh Redis di port 16379 dengan kata laluan mypass .

4. Permulaan

Spring memberi kami sokongan hebat untuk menghubungkan aplikasi Spring Boot kami dengan Redis menggunakan Spring Data Redis.

Jadi, seterusnya, pastikan kita mempunyai pergantungan spring-boot-starter-data-redis di pom.xml kami :

 org.springframework.boot spring-boot-starter-data-redis 2.2.6.RELEASE 

5. Selada

Seterusnya, mari konfigurasi pelanggan.

Pelanggan Java Redis yang akan kami gunakan adalah Lettuce sejak Spring Boot menggunakannya secara lalai. Namun, kita juga boleh menggunakan Jedis.

Bagaimanapun, hasilnya adalah contoh RedisTemplate :

@Bean public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) { RedisTemplate template = new RedisTemplate(); template.setConnectionFactory(connectionFactory); // Add some specific configuration here. Key serializers, etc. return template; }

6. Hartanah

Apabila kita menggunakan Lettuce, kita tidak perlu mengkonfigurasi RedisConnectionFactory. Spring Boot melakukannya untuk kita.

Yang tinggal, hanya untuk menentukan beberapa sifat dalam fail application.properties kami :

spring.redis.database=0 spring.redis.host=localhost spring.redis.port=16379 spring.redis.password=mypass spring.redis.timeout=60000

Secara berturut-turut:

  • pangkalan data menetapkan indeks pangkalan data yang digunakan oleh kilang sambungan
  • host adalah tempat host pelayan berada
  • port menunjukkan port tempat pelayan mendengar
  • kata laluan adalah kata laluan masuk untuk pelayan, dan
  • timeout menetapkan timeout sambungan

Sudah tentu, terdapat banyak sifat lain yang boleh kita konfigurasikan. Senarai lengkap sifat konfigurasi terdapat dalam dokumentasi Spring Boot.

7. Demo

Akhirnya, mari kita gunakan di aplikasi kita. Sekiranya kita membayangkan kelas Buku dan BookRepository, kita boleh membuat dan mengambil Buku , menggunakan RedisTemplate kami untuk berinteraksi dengan Redis sebagai backend kami:

@Autowired private RedisTemplate redisTemplate; public void save(Book book) { redisTemplate.opsForValue().set(book.getId(), book); } public Book findById(Long id) { return redisTemplate.opsForValue().get(id); }

Secara lalai, Lettuce akan menguruskan siri dan deserialisasi untuk kita, jadi tidak ada lagi yang perlu dilakukan pada masa ini. Namun, ada baiknya kita mengetahui bahawa ini juga dapat dikonfigurasi.

Ciri penting lain adalah kerana RedisTemplate selamat menggunakan benang , jadi ia akan berfungsi dengan baik di persekitaran berbilang tali .

8. Kesimpulannya

Dalam artikel ini, kami mengkonfigurasi Spring Boot untuk bercakap dengan Redis melalui Lettuce. Dan, kami mencapainya dengan permulaan, konfigurasi @Bean tunggal , dan sebilangan kecil sifat.

Untuk menyelesaikannya, kami menggunakan RedisTemplate untuk menjadikan Redis bertindak sebagai backend sederhana.

Contoh lengkap boleh didapati di GitHub.