Uvod u Spring Data Redis

1. Pregled

Ovaj je članak uvod u Spring Data Redis, koji apstrakcije platforme Spring Data pruža Redisu - popularnom spremištu podataka u memoriji.

Redis pokreće struktura podataka koja se temelji na pohrani ključeva kako bi zadržala podatke i može se koristiti kao baza podataka, predmemorija, posrednik poruka itd.

Moći ćemo koristiti uobičajene obrasce Spring Data-a (predlošci itd.), A istovremeno imati tradicionalnu jednostavnost svih Spring Data projekata.

2. Ovisnosti Mavena

Počnimo s deklariranjem ovisnosti Spring Data Redis u pom.xml:

 org.springframework.data spring-data-redis 2.3.3.OSLOBOĐENJE redis.clients jedis 3.3.0 jar 

Najnovije verzije proljeće-podaci-redis i jedis može se preuzeti s Maven Central.

Kao alternativu možemo koristiti pokretač Spring Boot za Redis, koji će eliminirati potrebu za odvojenim opruga-podaci i jedis ovisnosti:

 org.springframework.boot spring-boot-starter-data-redis 2.3.3.OSLOBODI 

Opet, Maven central nudi najnovije informacije o verziji.

3. Konfiguracija Redis

Da bismo definirali postavke veze između aplikacijskog klijenta i instance poslužitelja Redis, trebamo upotrijebiti Redis klijent.

Postoji nekoliko implementacija Redis klijenta dostupnih za Javu. U ovom vodiču, koristit ćemo Jedije - jednostavnu i moćnu implementaciju Redis klijenta.

U okviru postoji dobra podrška za XML i Java konfiguraciju; za ovaj ćemo vodič koristiti konfiguraciju zasnovanu na Javi.

3.1. Java konfiguracija

Počnimo s definicijama graha konfiguracije:

@Bean JedisConnectionFactory jedisConnectionFactory () {return new JedisConnectionFactory (); } @Bean public RedisTemplate redisTemplate () {RedisTemplate template = new RedisTemplate (); template.setConnectionFactory (jedisConnectionFactory ()); predložak za povratak; } 

Konfiguracija je vrlo jednostavna. Prvo, koristeći klijenta Jedis, definiramo a vezaTvornica.

Zatim smo definirali a RedisTemplate koristiti jedisConnectionFactory. To se može koristiti za ispitivanje podataka pomoću prilagođenog spremišta.

3.2. Prilagođena svojstva veze

Možda ste već primijetili da u gornjoj konfiguraciji nedostaju uobičajena svojstva povezana s vezom. Na primjer, adresa i port poslužitelja nedostaju u konfiguraciji. Razlog je jednostavan: za naš primjer koristimo zadane vrijednosti.

Međutim, ako trebamo konfigurirati detalje veze, uvijek možemo izmijeniti jedisConnectionFactory konfiguracija kako slijedi:

@Bean JedisConnectionFactory jedisConnectionFactory () {JedisConnectionFactory jedisConFactory = novi JedisConnectionFactory (); jedisConFactory.setHostName ("localhost"); jedisConFactory.setPort (6379); povratak jedisConFactory; }

4. Spremište Redis

Koristimo a Student entitet za naše primjere:

@RedisHash ("Student") javni razred Student implementira Serializable {public enum Gender {MALE, FEMALE} private String id; privatni naziv niza; privatni rodni rod; privatna int ocjena; // ...}

4.1. Proljetno spremište podataka

Stvorimo sada Repozitorij učenika kako slijedi:

Javno sučelje @Repository StudentRepository proširuje CrudRepository {}

5. Korištenje pristupa podacima Repozitorij učenika

Proširivanjem CrudRepository u Repozitorij učenika, automatski dobivamo cjelovit skup metoda upornosti koje izvode CRUD funkcionalnost.

5.1. Spremanje novog studentskog objekta

Spremimo novi studentski objekt u spremište podataka:

Student student = novi student ("Eng2015001", "John Doe", Student.Gender.MALE, 1); studentRepository.save (student);

5.2. Dohvaćanje postojećeg studentskog objekta

Točnim umetanjem učenika u prethodni odjeljak možemo provjeriti dohvaćanjem podataka o studentu:

Student retrievedStudent = studentRepository.findById ("Eng2015001"). Get ();

5.3. Ažuriranje postojećeg studentskog objekta

Promijenimo gore preuzeto ime učenika i ponovo ga spremimo:

retrievedStudent.setName ("Richard Watson"); studentRepository.save (student);

Napokon, možemo ponovno doći do podataka učenika i provjeriti je li ime ažurirano u trgovini podataka.

5.4. Brisanje postojećih podataka o studentima

Možemo izbrisati gore umetnute podatke o studentu:

studentRepository.deleteById (student.getId ());

Sada možemo tražiti objekt učenika i provjeriti je li rezultat null.

5.5. Pronađi sve podatke o studentima

Možemo umetnuti nekoliko studentskih predmeta:

Student engStudent = novi student ("Eng2015001", "John Doe", Student.Gender.MALE, 1); Student medStudent = novi student ("Med2015001", "Gareth Houston", Student.Gender.MALE, 2); studentRepository.save (engStudent); studentRepository.save (medStudent);

To također možemo postići umetanjem kolekcije. Za to postoji drugačija metoda - Spremi sve() - koja prihvaća singl Iterativ objekt koji sadrži više studentskih predmeta koje želimo ustrajati.

Da bismo pronašli sve umetnute učenike, možemo koristiti findAll () metoda:

Popis učenika = novi ArrayList (); studentRepository.findAll (). forEach (students :: dodaj);

Tada možemo brzo provjeriti veličinu studenti popisati ili provjeriti veću zrnatost provjerom svojstava svakog objekta.

6. Zaključak

U ovom uputstvu smo prošli kroz osnove Spring Data Redis-a. Izvorni kod gore navedenih primjera može se naći u projektu GitHub.