Introduzir dependências relacionadas ao Redis no arquivo pom.xml
<! - redis ->
<dependency>
<groupId> org.springframework.boot </groupId>
<artifactId> spring-boot-starter-data-redis </artifactId>
</dependency>
<! - fastjson - >
<dependency>
<groupId> com.alibaba </groupId>
<artifactId> fastjson </artifactId>
<version> 1.2.47 </version>
</dependency>
Dois, adicione a configuração relacionada ao redis em application.properties
# Índice do banco de dados Redis (o padrão é 0)
spring.redis.database = 0
# Endereço do servidor Redis
spring.redis.host = 192.168.0.205
# Porta de conexão do servidor Redis
spring.redis.port = 6379
# Senha de conexão do servidor Redis (o padrão é vazio )
Spring.redis.password = rootzx
# Tempo limite de conexão (milissegundos)
spring.redis.timeout = 5000
# O número máximo de conexões no pool de conexão (use um valor negativo para indicar nenhum limite)
spring.redis.jedis.pool. max-active = 10
# O tempo máximo de espera de bloqueio do pool de conexão (use um valor negativo para indicar que não há limite)
spring.redis.jedis.pool.max-wait = 5000
# A conexão ociosa máxima no pool de conexão
spring.redis.jedis.pool.max-idle = 10
# Conexão A conexão ociosa mínima no pool
spring.redis.jedis.pool.min-idle = 5
Três, escreva uma classe de configuração do redis
RedisTemplate pode ser configurado automaticamente
Mas a configuração automática não é fácil de usar, basta reconfigurar um RedisTemplate
Um pacote de classe de configuração conf cria uma classe de configuração redis
@Configuration
@ConditionalOnClass (RedisOperations.class)
@EnableConfigurationProperties (RedisProperties.class)
public class RedisConfig { @Bean @ConditionalOnMissingBean (name = "redisTemplate") RedisTemplate pública <Object, Object> redisTemplate ( RedisConnectionFactory redisConnectionFactory) { RedisTemplate <Object, Object> template = new RedisTemplate <> (); // 使用 fastjson 序列 化 FastJsonRedisSerializer fastJsonRedisSerializer = new FastJsonRedisSerializer (Object.class); // valor 值 的 序列 化 采用 fastJsonRedisSerializer template.setValueSerializer (fastJsonRedisSerializer);
template.setHashValueSerializer (fastJsonRedisSerializer);
// chave 的 序列 化 采用 StringRedisSerializer
template.setKeySerializer (new StringRedisSerializer ());
template.setHashKeySerializer (new StringRedisSerializer ());
template.setConnectionFactory (redisConnectionFactory);
return template;
}
@Bean
@ConditionalOnMissingBean (StringRedisTemplate.class)
public StringRedisTemplate stringRedisTemplate (
RedisConnectionFactory redisConnectionFactory) { StringRedisTemplate template = new StringRedisTemplate (); template.setConnectionFactory (redisConnectionFactory); return template;
}
}
4. Em seguida, pode ser usado diretamente no projeto
RedisTemplate não pode ser usado com RedisTemplate <String, Object>;
A configuração pode usar RedisTemplate <String, Object>
Introduzir coordenadas
<dependency>
<groupId> com.fasterxml.jackson.core </groupId>
<artifactId> jackson-annotations </artifactId>
</dependency>
@Configuration
public class RedisConfig { @Bean @SuppressWarnings ("all") public RedisTemplate <String, Object> redisTemplate (RedisConnectionFactory factory) { RedisTemplate <String, Object> template = new RedisTemplate <String, Object> (); template.setConnectionFactory (fábrica); Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = novo Jackson2JsonRedisSerializer (Object.class); ObjectMapper om = new ObjectMapper (); om.setVisibility (PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping (ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper (om);
StringRedisSerializer stringRedisSerializer = novo StringRedisSerializer ();
// utilizações principais Cadeia método de serialização
template.setKeySerializer (stringRedisSerializer);
// chave da mistura também usa o método de Cadeia serialização
template.setHashKeySerializer (stringRedisSerializer);
método // valor serialização usa Jackson
template.setValueSerializer (jackson2JsonRedisSerializer );
// O método de serialização de valor de hash usa jackson
template.setHashValueSerializer (jackson2JsonRedisSerializer);
template.afterPropertiesSet ();
return template;
}