Spring Data Redis ejendomsbaserede konfiguration

1. Oversigt

En af de største attraktioner i Spring Boot er, hvordan det ofte reducerer tredjepartskonfiguration til blot nogle få egenskaber.

I denne vejledning skal vi se hvordan Spring Boot forenkler arbejdet med Redis.

2. Hvorfor Redis?

Redis er en af ​​de mest populære datastrukturbutikker i hukommelsen. Af denne grund kan den bruges som en database, cache og meddelelsesmægler.

Med hensyn til ydeevne er det velkendt på grund af dets hurtige svartid. Som et resultat kan den tjene hundreder af tusinder af operationer pr. Sekund og er let skalerbar.

Og det passer godt sammen med Spring Boot-applikationer. For eksempel kan vi bruge det som en cache i vores mikrotjenestearkitektur. Vi kan også bruge den som en NoSQL-database.

3. Kører Redis

For at komme i gang, lad os oprette en Redis-forekomst ved hjælp af deres officielle Docker-billede.

$ docker-kørsel -p 16379: 6379 -d redis: 6.0 redis-server - kræver-pass "mypass"

Ovenfor har vi lige startet en forekomst af Redis i havn 16379 med en adgangskode på mypass.

4. Start

Spring giver os god støtte til at forbinde vores Spring Boot-applikationer med Redis ved hjælp af Spring Data Redis.

Lad os så sørge for, at vi har den spring-boot-starter-data-redis afhængighed i vores pom.xml:

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

5. Salat

Lad os derefter konfigurere klienten.

Java Redis-klienten vi bruger er salat, da Spring Boot bruger det som standard. Vi kunne dog også have brugt Jedis.

Uanset hvad er resultatet en forekomst af RedisTemplate:

@Bean offentlig RedisTemplate redisTemplate (RedisConnectionFactory connectionFactory) {RedisTemplate skabelon = ny RedisTemplate (); template.setConnectionFactory (connectionFactory); // Tilføj nogle specifikke konfigurationer her. Nøgleserialiserer osv. Returskabelon; }

6. Egenskaber

Når vi bruger salat, behøver vi ikke konfigurere RedisConnectionFactory. Spring Boot gør det for os.

Alt, hvad vi har tilbage, er så at specificere et par egenskaber i vores application.properties fil:

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

Henholdsvis:

  • database indstiller databaseindekset, der bruges af forbindelsesfabrikken
  • vært er hvor serverværten er placeret
  • Havn angiver den port, hvor serveren lytter
  • adgangskode er loginadgangskoden til serveren, og
  • tiden er gået etablerer timeout for forbindelsen

Der er selvfølgelig mange andre egenskaber, vi kan konfigurere. Den komplette liste over konfigurationsegenskaber er tilgængelig i Spring Boot-dokumentationen.

7. Demo

Lad os endelig prøve at bruge det i vores applikation. Hvis vi forestiller os en Bestil klasse og en Bogopbevaring, vi kan oprette og hente Bestils, ved hjælp af vores RedisTemplate at interagere med Redis som vores backend:

@Autowired privat RedisTemplate redisTemplate; offentlig tomrum gemme (bogbog) {redisTemplate.opsForValue (). sæt (book.getId (), bog); } public Book findById (Long id) {return redisTemplate.opsForValue (). get (id); }

Som standard administrerer salat serialisering og deserialisering for os, så der er ikke mere at gøre på dette tidspunkt. Det er dog godt at vide, at dette også kan konfigureres.

En anden vigtig funktion er siden RedisTemplateer trådsikker, så det fungerer ordentligt i miljøer med flere tråde.

8. Konklusion

I denne artikel konfigurerede vi Spring Boot til at tale med Redis via salat. Og vi opnåede det med en starter, en single @Bønne konfiguration og en håndfuld egenskaber.

For at afslutte brugte vi RedisTemplate at få Redis til at fungere som en simpel backend.

Det fulde eksempel kan findes på GitHub.


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