Springboot StringRedisTemplate配置文件

不废话直接贴代码

@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版权协议,转载请附上原文出处链接和本声明。