直接上代码
配置:
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;
}
}
使用时:
完成!