Bevezetés a Spring Data Redis-be
1. Áttekintés
Ez a cikk az a Spring Data Redis bemutatkozása, amely a Spring Data platform absztrakcióit biztosítja a Redis - a népszerű memóriában lévő adatszerkezet-tároló számára.
A Redist egy kulcstár-alapú adatstruktúra vezérli az adatok megőrzésére, és adatbázisként, gyorsítótárként, üzenetközvetítőként stb. Használható.
Képesek leszünk használni a Spring Data általános mintáit (sablonok stb.), Miközben az összes Spring Data projekt hagyományos egyszerűségét élvezzük.
2. Maven-függőségek
Kezdjük azzal, hogy deklaráljuk a Spring Data Redis függőségeket a pom.xml:
org.springframework.data spring-data-redis 2.3.3. KÖZLEMÉNY redis.clients jedis 3.3.0 jar
A legújabb verziói tavasz-adat-redis és jedis letölthető a Maven Central oldalról.
Alternatív megoldásként használhatjuk a Spring Boot indítót a Redis számára, amellyel feleslegessé válik a külön-külön tavaszi adatok és jedis függőségek:
org.springframework.boot spring-boot-starter-data-redis 2.3.3. KÖZLEMÉNY
Ismét a Maven central kínálja a legfrissebb verzióinformációkat.
3. A Redis konfiguráció
Az alkalmazás kliens és a Redis kiszolgálópéldány közötti kapcsolat beállításainak megadásához egy Redis klienst kell használnunk.
Számos Redis kliens implementáció érhető el a Java számára. Ebben az oktatóanyagban használjuk a Jedist - egy egyszerű és hatékony Redis kliens megvalósítást.
Jó a keretrendszer támogatása mind az XML, mind a Java konfigurációhoz; ehhez az oktatóanyaghoz Java alapú konfigurációt fogunk használni.
3.1. Java konfiguráció
Kezdjük a konfigurációs komponens definícióival:
@Bean JedisConnectionFactory jedisConnectionFactory () {return new JedisConnectionFactory (); } @Bean public RedisTemplate redisTemplate () {RedisTemplate template = new RedisTemplate (); template.setConnectionFactory (jedisConnectionFactory ()); visszatérési sablon; }
A konfigurálás meglehetősen egyszerű. Először a Jedis kliens segítségével meghatározzuk a connectionFactory.
Ezután meghatároztuk a RedisTemplate használni a jedisConnectionFactory. Ezt fel lehet használni az adatok lekérdezéséhez egy egyéni adattárral.
3.2. Egyéni kapcsolat tulajdonságai
Lehet, hogy már észrevette, hogy a szokásos kapcsolattal kapcsolatos tulajdonságok hiányoznak a fenti konfigurációból. Például a kiszolgáló címe és portja hiányzik a konfigurációból. Az ok egyszerű: példánkban az alapértelmezéseket használjuk.
Ha azonban konfigurálnunk kell a kapcsolat részleteit, akkor mindig módosíthatjuk a jedisConnectionFactory konfiguráció az alábbiak szerint:
@Bean JedisConnectionFactory jedisConnectionFactory () {JedisConnectionFactory jedisConFactory = új JedisConnectionFactory (); jedisConFactory.setHostName ("localhost"); jedisConFactory.setPort (6379); return jedisConFactory; }
4. Redis Repository
Használjuk a Diák entitás a példáinkhoz:
@RedisHash ("Student") nyilvános osztály A Student megvalósítja a Serializable {public enum Gender {MALE, FEMALE} private String azonosítót; privát karakterlánc neve; magánnem Nem; magán int évfolyam; // ...}
4.1. A tavaszi adattár
Most hozzuk létre a StudentRepository alábbiak szerint:
@Repository nyilvános felület A StudentRepository kiterjeszti a CrudRepository {}
5. Adatelérés használata StudentRepository
Hosszabbítással CrudRepository ban ben StudentRepository, automatikusan megkapjuk a CRUD funkciókat végrehajtó perzisztencia-módszerek teljes készletét.
5.1. Új diákobjektum mentése
Mentsünk egy új tanulóobjektumot az adattárba:
Hallgató diák = új hallgató ("Eng2015001", "John Doe", Student.Gender.MALE, 1); studentRepository.save (hallgató);
5.2. Meglévő diákobjektum lekérése
A tanuló adatainak beolvasásával ellenőrizhetjük a hallgató helyes beillesztését az előző szakaszba:
Student retrievedStudent = studentRepository.findById ("Eng2015001"). Get ();
5.3. Meglévő diákobjektum frissítése
Változtassuk meg a fent lekért tanuló nevét, és mentsük el újra:
retrievedStudent.setName ("Richard Watson"); studentRepository.save (hallgató);
Végül visszakereshetjük a hallgató adatait, és ellenőrizhetjük, hogy a név frissült-e az adattárolóban.
5.4. Meglévő tanulói adatok törlése
Törölhetjük a fent beillesztett tanulói adatokat:
studentRepository.deleteById (student.getId ());
Most megkereshetjük a diákobjektumot, és ellenőrizhetjük, hogy az eredmény-e nulla.
5.5. Keresse meg az összes hallgatói adatot
Beilleszthetünk néhány diákobjektumot:
Student engStudent = new Student ("Eng2015001", "John Doe", Student.Gender.MALE, 1); Diák medStudent = új hallgató ("Med2015001", "Gareth Houston", Student.Gender.MALE, 2); studentRepository.save (engStudent); studentRepository.save (medStudent);
Ezt egy gyűjtemény beszúrásával is elérhetjük. Ehhez egy másik módszer létezik - összes mentése() - amely elfogad egy szinglit Iterálható több diákobjektumot tartalmazó objektum, amelyet fenn akarunk tartani.
Az összes beillesztett tanuló megkereséséhez használhatjuk a Találd meg mindet() módszer:
Hallgatók listája = new ArrayList (); studentRepository.findAll (). forEach (hallgatók :: hozzáadás);
Ezután gyorsan ellenőrizhetjük a diákok listázza vagy ellenőrizze a nagyobb részletességet az egyes objektumok tulajdonságainak ellenőrzésével.
6. Következtetés
Ebben az oktatóanyagban áttekintettük a Spring Data Redis alapjait. A fenti példák forráskódja egy GitHub projektben található.