SpringBoot Redis 2.0.x

网友投稿 643 2022-05-30

*  redis的安装

SpringBoot Redis 2.0.x

在笔者之前的文章中有介绍redis的安装,不会的可

以去看 笔者之前写的文章Redis安装

完成安装后如果不熟悉redis的

操作,redis官方文档也有基本操作指南,Redis基本操作,如果觉得没问题了就可以开始对redis的整合

1. maven安装依赖

    org.springframework.boot     spring-boot-starter-data-redis

redis自动会吧cache的依赖带过来,所有不用配置,如图

2. 启动类增加@EnableCaching 注解

@SpringBootApplication @MapperScan("com.tanoak.mapper") @EnableCaching public class BootRedisApplication {   public static void main(String[] args) {     SpringApplication.run(BootRedisApplication.class, args);   } }

3. service层增加@Cacheable 注解

@Override @Cacheable(cacheNames= "tea") public Teacher getTeaById(Integer id) { logger.info("进行查询实体 ID为"+id); return teacherMapper.getTeaById(id) ; }

4. controller 查询

@GetMapping("/tea/{id}") public Teacher getTea(@PathVariable("id")Integer id){ returnteacherService.getTeaById(id) ; }

## RedisCacheManager 配置

在SpringBoot2.x中,移除了1.x中的配置,因此要配置Json序列化与1.x的差别很大,看代码

@Configuration @EnableCaching public class MyRedisConfig extends CachingConfigurerSupport {     /*     *自定义键生成策略     */ @Bean public KeyGenerator KeyGenerator() { return (target, method, 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(); }; }

@Bean public RedisCacheConfiguration redisCacheConfiguration() { 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); RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig(); redisCacheConfiguration = redisCacheConfiguration.serializeValuesWith( RedisSerializationContext .SerializationPair .fromSerializer(jackson2JsonRedisSerializer) //设置默认超过期时间是30秒 ).entryTtl(Duration.ofMinutes(30)); return redisCacheConfiguration; } }

没有打印sql,说明缓存成功,与redis集成就完成了

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python scipy 读取wav文件
下一篇:设计模式:生成器模式
相关文章