springboot环境下整合redis的配置以及部分代码的介绍
1.首先看一下配置
spring:
redis:
database: 1
host: 127.0.0.1
password: 123@123.com
port: 6379
pool:
max-active: 8
min-idle: 0
max-idle: 8
max-wait: -1
springboot中本身就集成好了redis,只要在对应的property或者yml配置文件中简单配置即可;
下面先大致看一下redisconfig的文件,再对部分配置做解释
@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport {
@Bean
public CacheManager cacheManager(RedisTemplate<Object, Object> redisTemplate){
RedisCacheManager cacheManager=new RedisCacheManager(redisTemplate);
cacheManager.setDefaultExpiration(5*60);//default timeunit is second
return cacheManager;
}
/**
* redisTemplate
* @author
* @time 2017年7月20日上午8:57:17
* @param redisConnectionFactory
* @return
*/
@Bean("redisTemplate")
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){
RedisTemplate<Object, Object> redisTemplate=new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
redisTemplate.setEnableTransactionSupport(true);
RedisSerializer<String> stringRedisSerializer = new StringRedisSerializer();//此处设置序列化格式是string
//redisTemplate.setDefaultSerializer(stringRedisSerializer);//设置默认
redisTemplate.setKeySerializer(stringRedisSerializer);
redisTemplate.setHashKeySerializer(stringRedisSerializer);
return redisTemplate;
}
/**
* 统一使用名称 类+方法+参数
*/
@Override
public KeyGenerator keyGenerator(){
return new KeyGenerator() {
@Override
public Object generate(Object target, Method method, Object... params) {
StringBuilder sb = new StringBuilder();
sb.append("wdcloud-");
sb.append(target.getClass().getName());
sb.append(method.getName());
for (Object obj : params) {
sb.append(obj.toString());
}
return sb.toString();
}
};
}
}
在rediscacheManager中定义expiretime,因为在原始的sping-jedis中实现对方法注解实现配置cache的功能中不存在过期超时时间;这里在manager中统一配置;在上篇的
springboot集成jetcache 中是阿里封装的,可以设置整体的expiretime,也可以个体设置;按需索取应用吧;
下面的keyGenerator是做应用统一命名前缀;
redisTemplate中设置serializer;具体参照api;这里不设置会出现cannot cast object to string的异常;