美文网首页
SpringBoot集成Jedis(一)

SpringBoot集成Jedis(一)

作者: 砒霜拌辣椒 | 来源:发表于2020-05-07 22:33 被阅读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);
        }
        // ...
    }
    

    SpringBoot集成Jedis(二)

    参考链接

    代码地址

    相关文章

      网友评论

          本文标题:SpringBoot集成Jedis(一)

          本文链接:https://www.haomeiwen.com/subject/ebktnhtx.html