- Overview
- Maven Dependencies
- a configuração Redis
- 3.1. Configuração Java
- 3.2. Propriedades de ligação personalizadas
- Redis Repositório
- 4.1. A Primavera Repositório de Dados
- Acesso a Dados Usando StudentRepository
- 5.1. A gravar um novo objecto de estudante
- 5.2. Obter um objecto de estudante existente
- 5.3. Atualizando um objeto estudantil existente
- 5.4. Apagar um dado existente do Estudante
- 5.5. Encontrar todos os dados do Estudante
- conclusão
Overview
this article is an introduction to Spring Data Redis, which provides the abstracts of the Spring Data platform to Redis – the popular in-memory data structure store.
Redis é impulsionado por uma estrutura de dados baseada em teclas para persistir dados e pode ser usado como um banco de dados, cache, Corretor de mensagens, etc.
poderemos utilizar os padrões comuns de dados de Primavera (modelos, etc.), tendo também a simplicidade tradicional de todos os projectos de dados da Primavera.
Maven Dependencies
Let’s start by declaring the Spring Data Redis dependencies in the 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>
as últimas versões de spring-data-redis e jedis podem ser baixadas da Maven Central.
alternativamente, podemos usar o iniciador de arranque de mola para o Redis, o que irá eliminar a necessidade de dados de mola separados e dependências jedis:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>2.3.3.RELEASE</version></dependency>
mais uma vez, a Maven central oferece as últimas informações da versão.
a configuração Redis
para definir as configurações de conexão entre o cliente da aplicação e a instância do servidor Redis, precisamos usar um cliente Redis.
há uma série de implementações cliente Redis disponíveis para Java. Neste tutorial, vamos usar Jedis – uma implementação simples e poderosa do cliente Redis.
existe um bom suporte para ambas as configurações XML e Java no framework; para este tutorial, vamos usar configuração baseada em Java.
3.1. Configuração Java
vamos começar com as definições de feijão de configuração:
@BeanJedisConnectionFactory jedisConnectionFactory() { return new JedisConnectionFactory();}@Beanpublic RedisTemplate<String, Object> redisTemplate() { RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setConnectionFactory(jedisConnectionFactory()); return template;}
a configuração é bastante simples. Primeiro, usando o cliente Jedis, estamos a definir um connectionFactory.
então, definimos um Redistemplato usando o jedisConnectionFactory. Isto pode ser usado para pesquisar dados com um repositório personalizado.
3.2. Propriedades de ligação personalizadas
pode já ter reparado que as propriedades normais relacionadas com a ligação estão em falta na configuração acima. Por exemplo, o endereço e a porta do servidor estão em falta na configuração. A razão é simples: por exemplo, estamos usando os defaults.
no Entanto, se é necessário configurar os detalhes de conexão, podemos sempre modificar o jedisConnectionFactory de configuração da seguinte forma:
@BeanJedisConnectionFactory jedisConnectionFactory() { JedisConnectionFactory jedisConFactory = new JedisConnectionFactory(); jedisConFactory.setHostName("localhost"); jedisConFactory.setPort(6379); return jedisConFactory;}
Redis Repositório
Vamos usar um Estudante entidade para nossos exemplos:
@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. A Primavera Repositório de Dados
agora Vamos criar o StudentRepository da seguinte forma:
@Repositorypublic interface StudentRepository extends CrudRepository<Student, String> {}
Acesso a Dados Usando StudentRepository
estendendo CrudRepository em StudentRepository, nós automaticamente obter um conjunto completo de métodos de persistência que executam a funcionalidade CRUD.
5.1. A gravar um novo objecto de estudante
vamos salvar um novo objecto de estudante na data store:
Student student = new Student( "Eng2015001", "John Doe", Student.Gender.MALE, 1);studentRepository.save(student);
5.2. Obter um objecto de estudante existente
podemos verificar a inserção correcta do estudante na secção anterior, obtendo os dados do estudante:
Student retrievedStudent = studentRepository.findById("Eng2015001").get();
5.3. Atualizando um objeto estudantil existente
vamos mudar o nome do estudante obtido acima e salvá-lo novamente:
retrievedStudent.setName("Richard Watson");studentRepository.save(student);
finalmente, podemos recuperar os dados do estudante novamente e verificar que o nome é atualizado no datastore.
5.4. Apagar um dado existente do Estudante
podemos apagar os dados acima inseridos do estudante:
studentRepository.deleteById(student.getId());
agora podemos procurar o objeto do estudante e verificar se o resultado é nulo.
5.5. Encontrar todos os dados do Estudante
podemos inserir alguns objectos do estudante:
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);
também podemos conseguir isso inserindo uma coleção. Para isso, há um método diferente – saveAll() – que aceita um único objeto iterável contendo múltiplos objetos estudantis que queremos persistir.
para encontrar todos os alunos inseridos, podemos usar o método findAll() :
List<Student> students = new ArrayList<>();studentRepository.findAll().forEach(students::add);
então podemos verificar rapidamente o tamanho da lista de alunos ou verificar para uma maior granularidade, verificando as propriedades de cada objeto.