SpringBoot自定义redis配置

直接上代码

配置:

redislocal: 
    host: 192.168.50.100
    port: 6379
    password: 123456
    ssl: false
    database: 0
    timeout: 6000
    pool:
      max-active: 8 #缺省值8
      max-idle: 8 #缺省值8
      min-idle: 0 #缺省值0
      max-wait: 3000 #缺省值-1

代码:

import java.io.Serializable;

import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

import com.sly.common.RedisHelper;

import redis.clients.jedis.JedisPoolConfig;

/**
 * _配置本地redis
 * @author sly
 * @time 2019年1月23日
 */
@Configuration
public class LocalRedisConfig {
	
	@Bean
	@ConditionalOnMissingBean(StringRedisSerializer.class)
	public StringRedisSerializer stringRedisSerializer() {
		return new StringRedisSerializer();
	}

	@Bean
	@ConditionalOnMissingBean(GenericJackson2JsonRedisSerializer.class)
	public GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer() {
		return new GenericJackson2JsonRedisSerializer();
	}
	
	@SuppressWarnings({ "rawtypes", "unchecked" })
	@Bean(name = "localRedisTemplate")
    public RedisTemplate<Serializable, Object> redisTemplate(
            @Value("${spring.redislocal.host}")String hostName,
            @Value("${spring.redislocal.port}")int port,
            @Value("${spring.redislocal.password}")String password,
            @Value("${spring.redislocal.ssl}") boolean ssl,
            @Value("${spring.redislocal.database}")int database,
            @Value("${spring.redislocal.timeout}") int timeout,
            @Value("${spring.redislocal.pool.max-active}")int maxActive,
            @Value("${spring.redislocal.pool.max-idle}")int maxIdle,
            @Value("${spring.redislocal.pool.min-idle}")int minIdle,
            @Value("${spring.redislocal.pool.max-wait}")long maxWaitMillis,
            GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer,
			StringRedisSerializer stringRedisSerializer
			) {

        RedisTemplate temple = new RedisTemplate();
        temple.setConnectionFactory(this.connectionFactory(
                hostName, port, password, maxIdle, minIdle, maxActive, database, maxWaitMillis, timeout, ssl));
        temple.setKeySerializer(stringRedisSerializer);//key序列化
        temple.setValueSerializer(genericJackson2JsonRedisSerializer);//value序列化
        temple.setHashKeySerializer(stringRedisSerializer);//Hash key序列化
        temple.setHashValueSerializer(genericJackson2JsonRedisSerializer);//Hash value序列化
        return temple;
    }

    public RedisConnectionFactory connectionFactory(
            String hostName, int port, String password, int maxIdle, int minIdle, int maxActive, int databaseIndex, long maxWaitMillis, int timeout, boolean ssl) {
        JedisConnectionFactory jedis = new JedisConnectionFactory();
        jedis.setHostName(hostName);
        jedis.setPort(port);
        jedis.setPassword(password);
        jedis.setDatabase(databaseIndex);
        jedis.setTimeout(timeout);
        jedis.setUseSsl(ssl);
        jedis.setPoolConfig(this.poolCofig(maxIdle,minIdle, maxActive, maxWaitMillis));
        // 初始化连接pool
        jedis.afterPropertiesSet();
        RedisConnectionFactory factory = jedis;
        return factory;
    }

    public JedisPoolConfig poolCofig(int maxIdle,int minIdle,int maxActive, long maxWaitMillis) {
        JedisPoolConfig poolCofig = new JedisPoolConfig();
        poolCofig.setMaxIdle(maxIdle);
        poolCofig.setMinIdle(minIdle);
        poolCofig.setMaxTotal(maxActive);
        poolCofig.setMaxWaitMillis(maxWaitMillis);
        poolCofig.setTestOnBorrow(false);
        return poolCofig;
    }
    
    @Bean(name = "localRedisHelper")
	public RedisHelper redisHelper(@Qualifier("localRedisTemplate") RedisTemplate<Serializable, Object> localRedisTemplate) {
		RedisHelper redisHelper = new RedisHelper();
		redisHelper.setRedisTemplate(localRedisTemplate);
		return redisHelper;
	}
	    

}

使用时:

完成!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值