- Oversikt
- Maven Avhengigheter
- Redis-Konfigurasjonen
- 3.1. Java-Konfigurasjon
- 3.2. Egendefinerte Tilkoblingsegenskaper
- Redis Repository
- 4.1. Spring Data Repository
- Datatilgang Ved Hjelp Av StudentRepository
- 5.1. Lagre Et Nytt Studentobjekt
- 5.2. Hente Et Eksisterende Studentobjekt
- 5.3. Oppdatere Et Eksisterende Studentobjekt
- 5.4. Slette Eksisterende Studentdata
- 5.5. Finn Alle Studentdata
- Konklusjon
Oversikt
denne artikkelen er en introduksjon Til Spring Data Redis, som gir abstraksjoner Av Spring data platform Til Redis-den populære in-memory datastruktur butikken.
Redis drives av en keystore – basert datastruktur for å fortsette data og kan brukes som database, cache, meldingsmegler, etc.
Vi kan bruke de vanlige mønstrene For Vårdata (maler, etc.), samtidig som du har den tradisjonelle enkelheten til Alle Vårdataprosjekter.
Maven Avhengigheter
La oss starte med å erklære Våren Data Redis avhengigheter i pom.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>
de nyeste versjonene av spring-data-redis og jedis kan lastes ned fra Maven Central.
Alternativt kan Vi bruke Spring Boot starteren For Redis, som vil eliminere behovet for separate fjærdata og jedis-avhengigheter:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>2.3.3.RELEASE</version></dependency>
Igjen, Maven central tilbyr den nyeste versjonen informasjon.
Redis-Konfigurasjonen
for å definere tilkoblingsinnstillingene mellom programklienten og redis-serverforekomsten, må Vi bruke En Redis-klient.
Det finnes En rekke Redis klient implementeringer tilgjengelig For Java. I denne opplæringen bruker Vi Jedis – en enkel Og kraftig Redis – klientimplementering.
det er god støtte for BÅDE XML-og Java-konfigurasjon i rammen; for denne opplæringen bruker Vi Java-basert konfigurasjon.
3.1. Java-Konfigurasjon
La oss starte med konfigurasjonsbønnedefinisjonene:
@BeanJedisConnectionFactory jedisConnectionFactory() { return new JedisConnectionFactory();}@Beanpublic RedisTemplate<String, Object> redisTemplate() { RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setConnectionFactory(jedisConnectionFactory()); return template;}
konfigurasjonen er ganske enkel. Først, ved Hjelp Av jedis-klienten, definerer Vi en connectionFactory.
deretter definerte vi En RedisTemplate ved hjelp av jedisConnectionFactory. Dette kan brukes for spørring av data med en tilpasset repository.
3.2. Egendefinerte Tilkoblingsegenskaper
Du har kanskje allerede lagt merke til at de vanlige tilkoblingsrelaterte egenskapene mangler i konfigurasjonen ovenfor. For eksempel mangler serveradressen og porten i konfigurasjonen. Årsaken er enkel: for vårt eksempel bruker vi standardverdiene.
men hvis vi trenger å konfigurere tilkoblingsdetaljene, kan vi alltid endre jedisconnectionfactory-konfigurasjonen som følger:
@BeanJedisConnectionFactory jedisConnectionFactory() { JedisConnectionFactory jedisConFactory = new JedisConnectionFactory(); jedisConFactory.setHostName("localhost"); jedisConFactory.setPort(6379); return jedisConFactory;}
Redis Repository
La oss bruke En Student enhet for våre eksempler:
@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. Spring Data Repository
La oss nå lage StudentRepository som følger:
@Repositorypublic interface StudentRepository extends CrudRepository<Student, String> {}
Datatilgang Ved Hjelp Av StudentRepository
ved å utvide CrudRepository I StudentRepository, får vi automatisk et komplett sett med persistensmetoder som utfører CRUD-funksjonalitet.
5.1. Lagre Et Nytt Studentobjekt
la oss lagre et nytt studentobjekt i datalageret:
Student student = new Student( "Eng2015001", "John Doe", Student.Gender.MALE, 1);studentRepository.save(student);
5.2. Hente Et Eksisterende Studentobjekt
vi kan verifisere korrekt innsetting av studenten i forrige seksjon ved å hente studentdataene:
Student retrievedStudent = studentRepository.findById("Eng2015001").get();
5.3. Oppdatere Et Eksisterende Studentobjekt
la oss endre navnet på studenten som er hentet ovenfor, og lagre det på nytt:
retrievedStudent.setName("Richard Watson");studentRepository.save(student);
Til slutt kan vi hente studentens data igjen og verifisere at navnet er oppdatert i datalageret.
5.4. Slette Eksisterende Studentdata
vi kan slette de ovennevnte studentdataene:
studentRepository.deleteById(student.getId());
Nå kan vi søke etter studentobjektet og verifisere at resultatet er null.
5.5. Finn Alle Studentdata
Vi kan sette inn noen studentobjekter:
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);
Vi kan også oppnå dette ved å sette inn en samling. For det er det en annen metode – saveAll () – som aksepterer et Enkelt Iterbart objekt som inneholder flere studentobjekter som vi vil fortsette.
for å finne alle innsatte studenter, kan vi bruke findAll () – metoden:
List<Student> students = new ArrayList<>();studentRepository.findAll().forEach(students::add);
da kan vi raskt sjekke størrelsen på studentlisten eller verifisere for større granularitet ved å sjekke egenskapene til hvert objekt.