SpringBoot集成Jedis(一)
2020-05-07 本文已影响0人
砒霜拌辣椒
- SpringBoot2.1.4
- 操作Redis单机。
1、导入Jedis依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
2、添加配置
server:
port: 30300
spring:
application:
name: jedis
# 这里我们是自己去实例化jedis的相关Bean(JedisPoolConfig、JedisPool...),并没有使用到RedisTemplate
# 所以并不需要像网上一些教程那样配置在spring节点下(spring.redis.jedis.pool.max-active...)
jedis:
host: 172.16.122.104
password:
port: 6379
timeout: 2000
maxTotal: 15 # 最大连接数
maxIdle: 10 # 最大空闲连接
minIdle: 5 # 最小空闲连接
maxWaitMillis: 10000 # 获取连接最大等待时间
testOnBorrow: true # 获取连接时检测是否可用
3、Spring配置Bean
@Bean
public JedisPoolConfig jedisPoolConfig(@Value("${jedis.maxTotal}") int maxActive,
@Value("${jedis.maxIdle}") int maxIdle,
@Value("${jedis.minIdle}") int minIdle,
@Value("${jedis.maxWaitMillis}") long maxWaitMillis,
@Value("${jedis.testOnBorrow}") boolean testOnBorrow) {
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(maxActive);
jedisPoolConfig.setMaxIdle(maxIdle);
jedisPoolConfig.setMinIdle(minIdle);
jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);
jedisPoolConfig.setTestOnBorrow(testOnBorrow);
return jedisPoolConfig;
}
@Bean
public JedisPool jedisPool(@Value("${jedis.host}") String host,
@Value("${jedis.password}") String password,
@Value("${jedis.port}") int port,
@Value("${jedis.timeout}") int timeout, JedisPoolConfig jedisPoolConfig) {
log.info("=====创建JedisPool连接池=====");
if(StringUtils.isNotEmpty(password)) {
return new JedisPool(jedisPoolConfig, host, port, timeout, password);
}
return new JedisPool(jedisPoolConfig, host, port, timeout);
}
4、代码示例
@Service("jedisService")
public class JedisServiceImpl implements JedisService {
@Autowired
private JedisPool jedisPool;
@Override
public void set(String key, String value) {
@Cleanup Jedis jedis = jedisPool.getResource();
jedis.set(key, value);
}
@Override
public String get(String key) {
@Cleanup Jedis jedis = jedisPool.getResource();
return jedis.get(key);
}
// ...
}