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;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。