首页 > 其他 > 详细

redis缓存的使用

时间:2020-07-07 16:41:15      阅读:58      评论:0      收藏:0      [点我收藏+]

1.添加相关依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
        </dependency>

2.在springBoot启动类添加@EnableCaching的注解

@SpringBootApplication
@EnableCaching
public class SellApplication {

    public static void main(String[] args) {
        SpringApplication.run(SellApplication.class, args);
    }

}

3.将要存储进redis的对象继承序列化相应的接口

  在idea下载相应快速生成序列化uuid的插件

技术分享图片

 

   给插件使用添加快捷键

技术分享图片

 

   要存储进redis对象的操作:

@Data
//1.继承序列化接口,使对象可序列化
public class ResultVO<T> implements Serializable {
    //2.使用插件生成对象序列化UUID
    private static final long serialVersionUID = 1494345419144039338L;
    private Integer code;
    private String msg;
    private T data;

    public ResultVO() {
    }

}

4.redis缓存相应的例子:

    @GetMapping("/list")
    @Cacheable(cacheNames = "products",key = "123",condition = "#sellerId.length()>0",unless = "#result.getCode()!=0")
    //@Cacheable:第一次访问该方法,会将该方法返回的对象(可序列化)存进redis缓存,
    //第二次访问该方法后,则不会运行该方法体了,会直接从redis中取值
    //condition的作用域是执行该方法前,针对方法的参数
    //unless的作用域是执行该方法后,针对方法的返回的对象,表示如果不,就是判定条件取反
    public ResultVO list(@RequestParam(value = "sellerId") String sellerId){...}

防止缓存后,修改数据库数据后,页面显示的数据不变,应在保存的方法清除缓存或更新缓存

清除缓存:

    @CacheEvict(cacheNames = "products",key = "123")//清除缓存
    @PostMapping("/save")
    public ModelAndView save(){...}

更新缓存:

使用@CachePut(cacheNames = "products",key = "123")

但是保存的对象,应与添加了@Cacheable的方法返回对象相同才可

redis缓存的使用

原文:https://www.cnblogs.com/shouyaya/p/13261419.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!