• SpringBoot怎么整合第三方缓存技术/EhCache缓存技术使用以及Redis缓存技术使用怎么在SpringBoot中使用


    写在前面
    继续记录自己的SpringBoot学习之旅,这次是SpringBoot应用相关知识学习记录。若看不懂则建议先看前几篇博客,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用!

    3.5 整合第三方技术

    3.5.1 缓存

    3.5.1.1 介绍
    • 缓存是一种介于数据永久存储介质与数据应用之间的数据临时存储介质
    • 使用缓存可以有效的减少低速数据读取过程的次数,提高系统性能
    • 缓存不仅可以用于提高永久性存储介质的数据读取速率,还可以提供临时的数据存储空间
    3.5.1.2 SpringBoot缓存(默认为Simple)
    • 设置缓存坐标,如图![[Pasted image 20220903171625.png]]
    • 启用缓存,如图![[Pasted image 20220903171639.png]]
    • 对应操作开启缓存,如图![[Pasted image 20220903171716.png]]
    3.5.1.3 缓存使用案例–手机验证码
    3.5.1.3.1 需求
    • 输入手机号获取验证码,组织文档以短信形式发送用户,这里仅仅是页面模拟
    • 输入手机号和验证码进行验证结果
    3.5.1.3.2 需求分析
    • 提供controller,传入手机号,业务层通过手机号计算出独有的6位验证码数据,并存储到缓存后返回数据
    • 提供controller,传入手机号,业务层通过手机号从缓存中拿出验证码并与输入验证码进行匹配返回结果
    3.5.1.3.3 代码操作
    • 创建项目并添加控制层controller,实体类层entity,业务层service以及相应的实现,如图![[Pasted image 20220904141629.png]]
    • controller如图![[Pasted image 20220904141751.png]]
    • 实体类层如图![[Pasted image 20220904141819.png]]
    • 业务层及相应接口实现层如图![[Pasted image 20220904141901.png]]
    • 工具类层如图![[Pasted image 20220904141947.png]]
    • 在postman或者Apifox中创建接口,进行测试后发现在意料之中,如图![[Pasted image 20220904142038.png]]
    3.5.1.4 EhCache缓存技术使用

    注:在上文项目里更改

    3.5.1.4.1 加入坐标
      
            <dependency>  
                <groupId>net.sf.ehcachegroupId>  
                <artifactId>ehcacheartifactId>  
            dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    3.5.1.4.2 配置缓存技术
    #      配置cache使用技术 
    spring:
      cache:  
        type: ehcache
        ehcache:
    	    config:ehcache.xml
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    ehcache.xml文件内容如下:

      
    <ehcache xmlns="http://www.w3.org/2001/XMLSchema-instance"  
             xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"  
            updateCheck="false">  
      
        <defaultCache  
                eternal="false"  
                diskPersistent="false"  
                maxElementsInMemory="1000"  
                overflowToDisk="false"  
                timeToIdleSeconds="60"  
                timeToLiveSeconds="60"  
                memoryStoreEvictionPolicy="LRU"/>  
        <cache            name="SMSCode"  
                eternal="false"  
                diskPersistent="false"  
                maxElementsInMemory="1000"  
                overflowToDisk="false"  
                timeToIdleSeconds="60"  
                timeToLiveSeconds="60"  
                memoryStoreEvictionPolicy="LRU"/>  
    ehcache>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    3.5.1.5 Redis缓存技术使用
    3.5.1.5.1 添加坐标
      
            <dependency>  
                <groupId>org.springframework.bootgroupId>  
                <artifactId>spring-boot-starter-data-redisartifactId>  
            dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    3.5.1.5.2 配置Redis
    spring:
      #      使用redis缓存技术  
      cache:  
        type: redis  
        redis:  
          use-key-prefix: true  
          key-prefix: cache_  
          time-to-live: 5s  
      redis:  
        host: localhost  
        port: 6379
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    注:其它类似上文

  • 相关阅读:
    使用CEF(六)— 解读CEF的cmake工程配置
    多学科融合
    JavaScript-DOM
    实时监控Mysql等数据库变化_进行数据同步_了解Debezium_--Debezium工作笔记001
    深度学习手写简单的lstm
    前端实现websocket的应用场景以及逻辑实现
    dot net 杂谈之一
    [Mysql] 删除数据
    火山引擎DataTester:一个爆款游戏产品,是如何用A/B测试打磨出来的?
    TikTok怎么开启社交电商?
  • 原文地址:https://blog.csdn.net/qq_40903378/article/details/127951322