springboot + redis

上一篇文章中咱们引入了mysql的配置,接下来咱们引入使用很是普遍的缓存组件redis;mysql

(注意,如下我引用的是自定义的redis配置,目的是更好的定制化一些功能以及多实例redis处理,并无采用spring自身封装的RedisTemplate,我的认为spring封装的redisTemplate还存在一些问题,因此有条件的童鞋最好自定义redis相关功能)。redis

注:基于demo-springboot;spring

1.打开application-dev.properties并加入如下内容:sql

#redis #redis db spring.redis.database=0 #redis host & port spring.redis.host=10.0.2.13 spring.redis.port=6379 spring.redis.password= #链接池最大链接数(使用负值表示没有限制) spring.redis.jedis.pool.max-active=1000 # 链接池中的最大空闲链接 spring.redis.jedis.pool.max-idle=100 #链接池最大阻塞等待时间(使用负值表示没有限制) spring.redis.jedis.pool.max-wait=-1 # 链接池中的最小空闲链接 spring.redis.jedis.pool.min-idle=0 # 链接超时时间(毫秒) spring.redis.timeout=0

以上为redis经常使用的相关配置以及说明;缓存

pom.xml中加入相关依赖:springboot

<!--redis--> <dependency>  <groupId>redis.clients</groupId>  <artifactId>jedis</artifactId>  <version>2.9.0</version> </dependency> <dependency>  <groupId>com.google.guava</groupId>  <artifactId>guava</artifactId>  <version>21.0</version> </dependency> <dependency>  <groupId>com.caucho</groupId>  <artifactId>hessian</artifactId>  <version>4.0.38</version> </dependency> 


2.在demo下新建package config,建立RedisConfig类markdown

 @Configuration @EnableAutoConfiguration @ConfigurationProperties(prefix = "spring.redis")
public class RedisConfig {

   private static Logger logger = LoggerFactory.getLogger(RedisConfig.class);   private String host;   private int port;   private String password;   @Value("${spring.redis.timeout}")
   private int timeout;   @Value("${spring.redis.jedis.pool.max-idle}")
   private int maxIdle;   @Value("${spring.redis.jedis.pool.min-idle}")
    private int minIdle;   @Value("${spring.redis.jedis.pool.max-wait}")
   private int maxWaitMillis;   @Value("${spring.redis.jedis.pool.max-active}")
   private int maxActive;   private boolean testOnBorrow = true;   @Bean  public JedisPoolConfig getRedisConfig() {
      JedisPoolConfig config = new JedisPoolConfig();  config.setMaxIdle(maxIdle);  config.setMinIdle(minIdle);  config.setMaxTotal(maxActive);  config.setMaxWaitMillis(maxWaitMillis);  config.setTestOnBorrow(testOnBorrow);  return config;  }

   @Bean("redisExtendClient")
   public RedisExtendClient redisExtendClient() {
      RedisExtendClient client = new RedisExtendClient(shardedJedisPool());  return client;  }
   
   @Bean("shardedJedisPool")
   public ShardedJedisPool shardedJedisPool() {
      JedisPoolConfig config = getRedisConfig();  List<JedisShardInfo> jdsInfoList =new ArrayList<JedisShardInfo>(2);  JedisShardInfo infoA = new JedisShardInfo(host, port);  jdsInfoList.add(infoA);  ShardedJedisPool pool = new ShardedJedisPool(config, jdsInfoList, Hashing.MURMUR_HASH,  Sharded.DEFAULT_KEY_TAG_PATTERN);  return pool;  }

   public int getPort() {
      return port;  }

   public void setPort(int port) {
      this.port = port;  }

   public String getPassword() {
      return password;  }

   public void setPassword(String password) {
      this.password = password;  }

   public int getTimeout() {
      return timeout;  }

   public void setTimeout(int timeout) {
      this.timeout = timeout;  }

   public String getHost() {
      return host;  }

   public void setHost(String host) {
      this.host = host;  }
}

以上为自定义的redis config,采用了多实例(多分片),RedisExtendClient 为我自定的redis操做工具类(封装了各类redis的相关操做,在此我就不贴出来了); ok一切配置就绪,接下来咱们开始测试一下吧!app


3.编写单元测试:工具


至此,你已成功引入redis缓存组件,congratulation!单元测试

相关文章
相关标签/搜索