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ó.