SpringBoot集成Jedis(一)

2020-05-07  本文已影响0人  砒霜拌辣椒

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);
    }
    // ...
}

SpringBoot集成Jedis(二)

参考链接

代码地址

上一篇下一篇

猜你喜欢

热点阅读