SpringBoot2整合Redis多数据源步骤详解
redis是一个基于内存的高性能key-value数据库,具有极高的读写速度。本文介绍SpringBoot和Redis的整合,以及如何在项目中具体应用
配置文件属性
spring: redis: database:1 host:192.168.50.144 port:6379 password: timeout:600#Springboot2.0不能设置为0 lettuce: pool: max-active:50 max-wait:-1 max-idle:8 min-idle:0 redis2: database:2 host:192.168.50.144 port:6379 password: timeout:600
配置类
@EnableCaching
@Configuration
publicclassRedisDevConfiguration{
@Bean(name="redisDevTemplate")
publicStringRedisTemplateredisTemplate(@Value("${spring.redis.host}")StringhostName,
@Value("${spring.redis.port}")intport,@Value("${spring.redis.password}")Stringpassword,
@Value("${spring.redis.lettuce.pool.max-idle}")intmaxIdle,@Value("${spring.redis.lettuce.pool.max-active}")intmaxTotal,
@Value("${spring.redis.database}")intindex,@Value("${spring.redis.lettuce.pool.max-wait}")longmaxWaitMillis,@Value("${spring.redis.lettuce.pool.min-idle}")intminIdle){
StringRedisTemplatetemple=newStringRedisTemplate();
temple.setConnectionFactory(
connectionFactory(hostName,port,password,maxIdle,maxTotal,index,maxWaitMillis,minIdle));
returntemple;
}
@Bean(name="redisUatTemplate")
publicStringRedisTemplateredisUatTemplate(@Value("${spring.redis2.host}")StringhostName,
@Value("${spring.redis2.port}")intport,@Value("${spring.redis2.password}")Stringpassword,
@Value("${spring.redis.lettuce.pool.max-idle}")intmaxIdle,@Value("${spring.redis.lettuce.pool.max-active}")intmaxTotal,
@Value("${spring.redis2.database}")intindex,@Value("${spring.redis.lettuce.pool.max-wait}")longmaxWaitMillis,@Value("${spring.redis.lettuce.pool.min-idle}")intminIdle){
StringRedisTemplatetemple=newStringRedisTemplate();
temple.setConnectionFactory(
connectionFactory(hostName,port,password,maxIdle,maxTotal,index,maxWaitMillis,minIdle));
returntemple;
}
publicRedisConnectionFactoryconnectionFactory(StringhostName,intport,Stringpassword,intmaxIdle,
intmaxTotal,intindex,longmaxWaitMillis,intminIdle){
JedisConnectionFactoryjedis=newJedisConnectionFactory();
jedis.setHostName(hostName);
jedis.setPort(port);
if(StringUtils.isNotEmpty(password)){
jedis.setPassword(password);
}
if(index!=0){
jedis.setDatabase(index);
}
jedis.setPoolConfig(poolCofig(maxIdle,maxTotal,maxWaitMillis,minIdle));
//初始化连接pool
jedis.afterPropertiesSet();
RedisConnectionFactoryfactory=jedis;
returnfactory;
}
publicJedisPoolConfigpoolCofig(intmaxIdle,intmaxTotal,longmaxWaitMillis,intminIdle){
JedisPoolConfigpoolCofig=newJedisPoolConfig();
poolCofig.setMaxIdle(maxIdle);
poolCofig.setMaxTotal(maxTotal);
poolCofig.setMaxWaitMillis(maxWaitMillis);
poolCofig.setMinIdle(minIdle);
returnpoolCofig;
}
}
如何使用
@Resource(name="redisDevTemplate") privateStringRedisTemplatetemplate; @Resource(name="redisUatTemplate") privateStringRedisTemplatelockTemplate;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。