• Spring Cache + Redis;用Spring Cache的注解自动管理Redis缓存


    一、Spring Cache介绍

    二、使用Spring Cache的Map存储(不使用Redis)

            1、当我们导入spring-boot-starter-web坐标时,里面的org.springframework:spring-webmvc下的spring-context包下的基础的API就足够去使用Spring Cache的基本操作。(也就是说,只要导入了spring-context上下文这个包,我们就能够去操作Spring-Cache的功能)

            2、在启动类上加上@EnableCaching注解,开启注解缓存支持

            3、在Controller中自动注入CacheManager,用来统一不同的缓存技术。

            CacheManager是一个接口,默认为我们提供了5个实现类

          (本次用的就是ConcurrentMapCacheManager来进行缓存的存储和删除)

    三、Spring Cache的常用注解

    四、用法:

            (注意:在使用Catch的大前提就是,要存入到缓存中的对象的类(或对象的集合)必须让该类实现序列化接口(implements Serializable),没有实现序列化接口就会报错)

            1、value属性是缓存类的名称,每一个缓存类下面可以有多个key

            2、key属性才是真正的缓存数据的key

            3、key中的值:

                    1.#result.属性   以返回结果的属性的值为key

                    2.#root.args[0].属性  以方法的第一个参数的属性值作为key

                    3.#方法的参数.属性   以方法的某个参数的属作为key

             3、关于condition和unless都是@Cacheable注解的条件属性,两者有什么区别,以及为什么这里不能用  condition = "#result != null"  直接去看上一篇文章:Spring Cache的@Cacheable注解的condition属性与unless属性细节问题;Redis每日一坑在这里我就不过多解释了。

     4、key的值也可以进行拼接,如下:用参数的id和名字中间加上下划线,key属性中支持这个语法

     五、其实用Spring Cache + Redis用法和上面一样。无非就是多了几个准备步骤

            1、引入spring-boot-starter-data-redis和spring-boot-starter-cache两个坐标

            在只引入了spring-boot-starter-cache坐标时,我们再回过去ctrl + alt看一下这个CacheManager的实现类增多了。

            在引入spring-boot-starter-data-redis坐标后,我们再回过去ctrl + alt看一下这个CacheManager的实现类又又 多了。其中主要扩展出来的就是这个RedisCacheManager实现类,也就是我们刚引入的redis的jar包中的,由IOC容器自动装配进来了 

     

            2、用application.yml文件对cache的相应配置

            3、在启动类上加入@EnableCaching注解,开启缓存注解功能

            4、在Controller的方法上加入@Cacheable(要将方法的返回结果数入Redis时,在方法的头上使用此注解)、@CacheEvict(要将Redis中已经存储好的数据删除时,在方法头上使用此注解)等注解

  • 相关阅读:
    el-select下拉框文字溢出,...并显示tooltip
    MySQL架构MMM
    构建简单物体
    操作系统的发展和分类,概念,它的运行机制和体系结构,以及和它相关的特征,功能和目标,
    ESP8266-Arduino编程实例-MMA7660加速计驱动
    快速排序 分数 25
    C++ 常用时间获取函数汇总
    vue3中使用vuex和vue-router
    从 IPv4 向 IPv6 的迁移
    【Unity3D】相机跟随
  • 原文地址:https://blog.csdn.net/qq_45839663/article/details/127209491