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!單元測試

相關文章
相關標籤/搜索