content: package com.gpmall.commons.tool.redisconfig;
  
  import org.apache.commons.lang3.StringUtils;
  import org.redisson.Redisson;
  import org.redisson.api.RedissonClient;
  import org.redisson.codec.JsonJacksonCodec;
  import org.redisson.config.Config;
  import org.redisson.config.SingleServerConfig;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
  import org.springframework.boot.context.properties.EnableConfigurationProperties;
  import org.springframework.context.annotation.Bean;
  import org.springframework.context.annotation.Configuration;
  
  /**
   * Created by mic on 2019/7/23.
   */
  
  @Configuration
  @EnableConfigurationProperties(RedissonProperties.class)
  @ConditionalOnClass({Redisson.class})
  public class RedissonAutoConfiguration {
  
      @Autowired
      RedissonProperties redissonProperties;
  
      @Bean
      RedissonClient redissonClient() {
          Config config = new Config();
          String node = redissonProperties.getAddress();
          node = node.startsWith("redis://") ? node : "redis://" + node;
          SingleServerConfig serverConfig = config.useSingleServer()
                  .setAddress(node)
                  .setTimeout(redissonProperties.getTimeout())
                  .setConnectionMinimumIdleSize(redissonProperties.getPool().getMinIdle());
          if (StringUtils.isNotBlank(redissonProperties.getPassword())) {
              serverConfig.setPassword(redissonProperties.getPassword());
          }
          return Redisson.create(config);
      }
  
  }
  