前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot Redis 2.0.x

SpringBoot Redis 2.0.x

原创
作者头像
tanoak
发布2018-07-13 19:59:00
3810
发布2018-07-13 19:59:00
举报
文章被收录于专栏:java闲聊

* redis的安装

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

* 完成安装后如果不熟悉redis的操作,redis官方文档也有基本操作指南,redis基本操作,如果觉得没问题了就可以开始对redis的整合

  1. maven安装依赖
代码语言:txt
复制
<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-data-redis</artifactId>

</dependency>

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

  1. 启动类增加@EnableCaching 注解
代码语言:txt
复制
@SpringBootApplication

@MapperScan("com.tanoak.mapper")

@EnableCaching

public class BootRedisApplication {

    public static void main(String[] args) {

        SpringApplication.run(BootRedisApplication.class, args);

    }

}
  1. service层增加@Cacheable 注解
代码语言:txt
复制
@Override

    @Cacheable(cacheNames= "tea")

    public Teacher getTeaById(Integer id) {

        logger.info("进行查询实体 ID为"+id);

        return teacherMapper.getTeaById(id) ;

    }
  1. controller 查询
代码语言:txt
复制
@GetMapping("/tea/{id}")

public Teacher getTea(@PathVariable("id")Integer id){

        return    teacherService.getTeaById(id) ;

    }

RedisCacheManager 配置

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

代码语言:txt
复制
@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<Object> 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

                        .SerializationPai

                        .fromSerializer(jackson2JsonRedisSerializer)

                //设置默认超过期时间是30秒

        ).entryTtl(Duration.ofMinutes(30));



        return redisCacheConfiguration;

    }



}

![(https://upload-images.jianshu.io/upload_images/9819800-04848a258463db18.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • RedisCacheManager 配置
相关产品与服务
云数据库 Redis®
腾讯云数据库 Redis®(TencentDB for Redis®)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档