Introduction to Spring Data Redis

Overview

this article is an introduction to Spring Data Redis, which provides the abstractions of the Spring Data platform to Redis – the popular in-memory data structure store.

Redis: ää ohjaa keystore-pohjainen tietorakenne tietojen säilömiseksi ja sitä voidaan käyttää tietokantana, välimuistina, viestien välittäjänä jne.

Voimme käyttää Jousiaineiston yleisiä kuvioita (mallineet jne.), mutta samalla kaikkien kevään Dataprojektien perinteinen yksinkertaisuus.

Maven riippuvuudet

aloitetaan ilmoittamalla Jousiaineiston Uudelleenriippuvuudet pom: ssä.xml:

<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>2.3.3.RELEASE</version> </dependency><dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.3.0</version> <type>jar</type></dependency>

uusimmat versiot spring-data-redis ja jedis voidaan ladata Maven Central.

vaihtoehtoisesti voimme käyttää Jousikäynnistyskäynnistintä Redis: iin, mikä poistaa erillisten jousi-data-ja jedis-riippuvuuksien tarpeen:

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>2.3.3.RELEASE</version></dependency>

jälleen, Maven central tarjoaa uusimman version tiedot.

Redis-konfiguraatio

määrittääksemme yhteysasetukset sovellusohjelmiston ja Redis-palvelimen instanssin välillä, meidän on käytettävä Redis-asiakasohjelmaa.

Javalle on saatavilla useita Redis-asiakastoteutuksia. Tässä opetusohjelmassa käytämme Jedis-yksinkertaista ja tehokasta Redis – asiakkaan toteutusta.

kehyksessä on hyvä tuki sekä XML-että Java-määrityksille; tähän opetusohjelmaan käytämme Java-pohjaista määritystä.

3.1. Java-konfiguraatio

aloitetaan konfiguraatiopapujen määritelmistä:

@BeanJedisConnectionFactory jedisConnectionFactory() { return new JedisConnectionFactory();}@Beanpublic RedisTemplate<String, Object> redisTemplate() { RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setConnectionFactory(jedisConnectionFactory()); return template;}

kokoonpano on melko yksinkertainen. Jedis-asiakkaan avulla määrittelemme yhteyden.

sitten määrittelimme Jedisconnectionfactoryn avulla Uudelleenlaatan. Tätä voidaan käyttää tietojen kyselyyn mukautetun arkiston avulla.

3.2. Mukautetun yhteyden ominaisuudet

olet ehkä jo huomannut, että tavanomaiset yhteyden ominaisuudet puuttuvat yllä olevasta asetuksesta. Esimerkiksi palvelimen osoite ja portti puuttuvat asetuksista. Syy on yksinkertainen: esimerkissämme käytämme oletusarvoja.

kuitenkin, jos meidän täytyy määrittää yhteyden tiedot, voimme aina muuttaa jedisConnectionFactory kokoonpano seuraavasti:

@BeanJedisConnectionFactory jedisConnectionFactory() { JedisConnectionFactory jedisConFactory = new JedisConnectionFactory(); jedisConFactory.setHostName("localhost"); jedisConFactory.setPort(6379); return jedisConFactory;}

Redis Repository

käytetään Opiskelijakokonaisuutta esimerkeissämme:

@RedisHash("Student")public class Student implements Serializable { public enum Gender { MALE, FEMALE } private String id; private String name; private Gender gender; private int grade; // ...}

4.1. Kevään tietovarasto

luodaan nyt StudentRepository seuraavasti:

@Repositorypublic interface StudentRepository extends CrudRepository<Student, String> {}

tietojen käyttö StudentRepository

laajentamalla CrudRepository StudentRepository, saamme automaattisesti täydellisen sarjan pysyvyys menetelmiä, jotka suorittavat CRUD toimintoja.

5.1. Tallennetaan Uusi Opiskelijakohde

tallennetaan Uusi opiskelijakohde tietovarastoon:

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

5.2. Haetaan olemassa olevaa Opiskelijakohdetta

voimme varmistaa opiskelijan oikean lisäyksen edelliseen osioon hakemalla opiskelijatiedot:

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

5.3. Päivitetään olemassa olevaa Opiskelijakohdetta

muutetaan edellä haetun opiskelijan nimi ja tallennetaan se uudelleen:

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

lopuksi voimme hakea opiskelijan tiedot uudelleen ja tarkistaa, että nimi on päivitetty datastore.

5.4. Olemassa olevan Opiskelijatiedon poistaminen

voimme poistaa yllä olevat opiskelijatiedot:

studentRepository.deleteById(student.getId());

nyt voimme etsiä opiskelija-objektin ja varmistaa, että tulos on nolla.

5.5. Etsi kaikki opiskelijatiedot

voimme lisätä muutaman opiskelijaobjektin:

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

voimme saavuttaa tämän myös lisäämällä kokoelma. Tätä varten on olemassa toinen menetelmä – saveAll () – joka hyväksyy yhden Iteroitavan objektin, joka sisältää useita opiskelijaobjekteja, jotka haluamme säilyttää.

kaikkien lisättyjen opiskelijoiden löytämiseksi voidaan käyttää findAll () – menetelmää:

List<Student> students = new ArrayList<>();studentRepository.findAll().forEach(students::add);

sitten voimme nopeasti tarkistaa opiskelijaluettelon koon tai varmistaa suuremman rakeisuuden tarkistamalla kunkin kohteen ominaisuudet.

johtopäätös



+