上一篇文章中咱們引入了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!單元測試