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.