个人博客


  • SpringBoot2.1.4
  • 操作Redis单机。

1、导入Jedis依赖

1
2
3
4
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>

2、添加配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
@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、代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@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);
}
// ...
}

参考链接

代码地址