上一篇文章中咱们引入了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!单元测试