Springboot整合Redis

来源:互联网 发布:js string转int 编辑:程序博客网 时间:2024/05/21 08:02

windows的redis版本下载:http://download.csdn.net/download/a295277302/9940194

源码路径:http://download.csdn.net/download/a295277302/9946554

登陆是admin/admin

添加redis依赖jar

<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-redis</artifactId>  <version>1.4.7.RELEASE</version></dependency>
指明版本号是因为本文所用的springboot版本为1.5.4

如果不指明版本号会出现unknown的问题


查找原因是因为redis到目前的最高版本为1.4.7.RELEASE


所以才会找不到版本号。


之后添加RedisConfig

@Configuration@EnableCachingpublic class RedisConfig extends CachingConfigurerSupport{    @Bean    public KeyGenerator keyGenerator() {        return new KeyGenerator() {            @Override            public Object generate(Object target, Method method, Object... params) {                StringBuilder sb = new StringBuilder();                sb.append(target.getClass().getName());                sb.append(method.getName());                for (Object obj : params) {                    sb.append(obj.toString());                }                return sb.toString();            }        };    }    @SuppressWarnings("rawtypes")    @Bean    public CacheManager cacheManager(RedisTemplate redisTemplate) {        RedisCacheManager rcm = new RedisCacheManager(redisTemplate);        //设置缓存过期时间        //rcm.setDefaultExpiration(60);//秒        return rcm;    }    @Bean    public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {        StringRedisTemplate template = new StringRedisTemplate(factory);        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);        ObjectMapper om = new ObjectMapper();        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);        jackson2JsonRedisSerializer.setObjectMapper(om);        template.setValueSerializer(jackson2JsonRedisSerializer);        template.afterPropertiesSet();        return template;    }}
到目前为止 Redis缓存已经添加成功了。

测试:

@Autowiredprivate StringRedisTemplate stringRedisTemplate;@Autowiredprivate RedisTemplate redisTemplate;
字符串缓存

stringRedisTemplate.opsForValue().set("aaa", "111");
对象缓存

ser user=new User("aa@126.com", "aa", "aa123456", "aa","123");        ValueOperations<String, User> operations=redisTemplate.opsForValue();        operations.set("com.neox", user);        operations.set("com.neo.f", user,1,TimeUnit.SECONDS);        Thread.sleep(1000);        //redisTemplate.delete("com.neo.f");        boolean exists=redisTemplate.hasKey("com.neo.f");        if(exists){        System.out.println("exists is true");        }else{        System.out.println("exists is false");        }
注解缓存

@Cacheable(value="user-key")public UserResponse getUserInfo(@PathVariable String id){    UserResponse user = userService.findById(id);    return user;}
目前本地缓存为:


添加之后:


原创粉丝点击