springboot整合redis(二)

来源:互联网 发布:唐朝的太阳 知乎 编辑:程序博客网 时间:2024/06/05 14:48

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@EnableCachingpublic class RedisConfig extends CachingConfigurerSupport {@Beanpublic CacheManager cacheManager(RedisTemplate<Object, Object> redisTemplate){RedisCacheManager cacheManager=new RedisCacheManager(redisTemplate);cacheManager.setDefaultExpiration(5*60);//default timeunit is secondreturn 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;}/** * 统一使用名称  类+方法+参数 */@Overridepublic KeyGenerator keyGenerator(){return new KeyGenerator() {@Overridepublic 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的异常;



原创粉丝点击