Spring Data Redis eiendomsbaserte konfigurasjon

1. Oversikt

En av hovedattraksjonene til Spring Boot er hvordan det ofte reduserer tredjepartskonfigurasjon til bare noen få eiendommer.

I denne opplæringen skal vi se hvordan Spring Boot forenkler arbeidet med Redis.

2. Hvorfor Redis?

Redis er en av de mest populære datastrukturbutikkene i minnet. Av denne grunn kan den brukes som en database, cache og meldingsmegler.

Når det gjelder ytelse, er den velkjent på grunn av den raske responstiden. Som et resultat kan den tjene hundretusenvis av operasjoner per sekund og er lett skalerbar.

Og det passer godt sammen med Spring Boot-applikasjoner. For eksempel kan vi bruke den som en cache i vår mikrotjenestearkitektur. Vi kan også bruke den som en NoSQL-database.

3. Kjører Redis

For å komme i gang, la oss lage en Redis-forekomst ved hjelp av deres offisielle Docker-bilde.

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

Ovenfor har vi nettopp startet en forekomst av Redis i havn 16379 med passord på mypass.

4. Starter

Spring gir oss god støtte for å koble vår Spring Boot-applikasjoner med Redis ved hjelp av Spring Data Redis.

Så la oss sørge for at vi har spring-boot-starter-data-redis avhengighet i vår pom.xml:

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

5. Salat

Deretter la oss konfigurere klienten.

Java Redis-klienten vi bruker er Salat siden Spring Boot bruker det som standard. Imidlertid kunne vi også ha brukt Jedis.

Uansett er resultatet en forekomst av RedisTemplate:

@Bean offentlig RedisTemplate redisTemplate (RedisConnectionFactory connectionFactory) {RedisTemplate mal = ny RedisTemplate (); template.setConnectionFactory (connectionFactory); // Legg til noen spesifikke konfigurasjoner her. Nøkkel serialiserer osv. Returmal; }

6. Egenskaper

Når vi bruker Salat, trenger vi ikke å konfigurere RedisConnectionFactory. Spring Boot gjør det for oss.

Alt vi har igjen, er da å spesifisere noen få eiendommer i våre application.properties fil:

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

Respektivt:

  • database angir databaseindeksen som brukes av tilkoblingsfabrikken
  • vert er hvor serververt er lokalisert
  • havn indikerer porten der serveren lytter
  • passord er påloggingspassordet for serveren, og
  • pause etablerer tidsavbrudd for tilkoblingen

Selvfølgelig er det mange andre egenskaper vi kan konfigurere. Den komplette listen over konfigurasjonsegenskaper er tilgjengelig i Spring Boot-dokumentasjonen.

7. Demo

Til slutt, la oss prøve å bruke den i applikasjonen vår. Hvis vi forestiller oss en Bok klasse og en BookRepository, vi kan opprette og hente Boks, bruker vår RedisTemplate å samhandle med Redis som vår backend:

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

Som standard vil salat administrere serialisering og deserialisering for oss, så det er ikke mer å gjøre på dette tidspunktet. Det er imidlertid godt å vite at dette også kan konfigureres.

En annen viktig funksjon er siden RedisTemplateer trådsikker, slik at det fungerer ordentlig i miljøer med flere tråder.

8. Konklusjon

I denne artikkelen konfigurerte vi Spring Boot til å snakke med Redis via salat. Og vi oppnådde det med en startpakke, en singel @Bønne konfigurasjon, og en håndfull egenskaper.

For å pakke opp, brukte vi RedisTemplate å få Redis til å fungere som en enkel backend.

Det fulle eksemplet finner du på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found