不废话直接贴代码
@Configuration
public class DefaultRedisTemplateConfig {
@Value("${spring.redis.base.hostName}")
private String host;
@Value("${spring.redis.base.port}")
private int port;
@Value("${spring.redis.base.password}")
private String password;
@Value("${spring.redis.base.database}")
private int database;
//实际bean
@Bean(name = "defaultRedisTemplate")
public StringRedisTemplate redisStringTemplateSecond() {
StringRedisTemplate stringRedisTemplate = getRedisTemplate();
//设置连接Factory
stringRedisTemplate.setConnectionFactory(
secondFactory()
);
return stringRedisTemplate;
}
@Bean
public RedisStandaloneConfiguration standaloneConfigurationA() {
RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
//设置连接基本属性
redisStandaloneConfiguration.setHostName(host);
redisStandaloneConfiguration.setPort(port);
redisStandaloneConfiguration.setDatabase(database);
return redisStandaloneConfiguration;
}
//设置连接Factory
@Bean
public JedisConnectionFactory secondFactory() {
JedisClientConfiguration poolConfig = JedisClientConfiguration
.builder()
.usePooling()
.poolConfig(getJedisPoolConfig())
.build();
return new JedisConnectionFactory(standaloneConfigurationA(), poolConfig);
}
//设置序列化方式(重要)
private StringRedisTemplate getRedisTemplate() {
StringRedisTemplate template = new StringRedisTemplate();
//使用jackson2序列化
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
// value值的序列化采用jackson2JsonRedisSerializer
template.setValueSerializer(jackson2JsonRedisSerializer);
template.setHashValueSerializer(jackson2JsonRedisSerializer);
// key的序列化采用StringRedisSerializer
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());
return template;
}
//配置连接池
private JedisPoolConfig getJedisPoolConfig() {
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxIdle(200);
poolConfig.setMinIdle(50);
poolConfig.setMaxTotal(2000);
poolConfig.setTestWhileIdle(true);
poolConfig.setTestOnBorrow(true);
poolConfig.setTestOnReturn(true);
poolConfig.setNumTestsPerEvictionRun(10);
poolConfig.setTimeBetweenEvictionRunsMillis(60000);
return poolConfig;
}
}
版权声明:本文为weixin_43884057原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。