SpringBoot2整合Redis多数据源步骤详解

网友投稿 363 2022-12-11


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

public class RedisDevConfiguration {

@Bean(name = "redisDevTemplate")

public StringRedisTemplate redisTemplate(@Value("${spring.redis.host}") String hostName,

@Value("${spring.redis.port}") int port, @Value("${spring.redis.password}") String password,

@Value("${spring.redis.lettuce.pool.max-idle}") int maxIdle, @Value("${spring.redis.lettuce.pool.max-active}") int maxTotal,

@Value("${spring.redis.database}") int index, @MBdKjkrhValue("${spring.redis.lettuce.pool.max-wait}") long maxWaitMillis,@Value("${spring.redis.lettuce.pool.min-idle}") int minIdle) {

StringRedisTemplate temple = new StringRedisTemplate();

temple.setConnectionFactory(

connectionFactory(hostName, port, password, maxIdle, maxTotal, index, maxWaitMillis,minIdle));

return temple;

}

@Bean(name = "redisUatTemplate")

public StringRedisTemplate redisUatTemplate(@Value("${spring.redis2.host}") String hostName,

@Value("${spring.redis2.port}") int port, @Value("${spring.redis2.password}") String password,

@Value("${spring.redis.lettuce.pool.max-idle}") int maxIdle, @Value("${spring.redis.lettuce.pool.max-active}") int maxTotal,

@Value("${spring.redis2.database}") int index, @Value("${spring.redis.lettuce.pool.max-wait}") long maxWaitMillis,@Value("${spring.redis.lettuce.pool.min-idle}") int minIdle) {

StringRedisTemplate temple = new StringRedisTemplate();

temple.setConnectionFactory(

connectionFactory(hostName, port, password, maxIdle, maxTotal, index, maxWaitMillis,minIdle));

return temple;

}

public RedisConnectionFactory connectionFactory(String hostName, int port, String password, int maxIdle,

int maxTotal, int index, long maxWaitMillis,int minIdle) {

JedisConnectionFactory jedis = new JedisConnectionFactory();

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();

RedisConnectionFactory factory = jedis;

return factory;

}

public JedisPoolConfig poolCofig(int maxIdle, int maxTotal, long maxWaitMillis,int minIdle) {

JedisPoolConfig poolCofig = new JedisPoolConfig();

poolCofig.setMaxIdle(maxIdle);

poolCofig.setMaxTotal(maxTotal);

poolCofig.setMaxWaitMillis(maxWaitMillis);

poolCofig.setMinIdle(minIdle);

return poolCofig;

}

}

如何使用

@Resource(name = "redisDevTemplate")

private StringRedisTemplate template;

@Resource(name = "redisUatTemplate")

private StringRedisTemplate lockTemplate;


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java中equals()知识点总结
下一篇:Java 在PDF中添加条形码的两种方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~