利用spring的aop做一个自定义缓存最近对接口进行压测,发现在有限服务器资源的情况下,接口响应的效率并不高,所以需要进行优化;服务的处境是,要处理前端的业务逻辑,还要与数据库进行数据传输,所以优化要在5方面进行,1.前端的合理代码,将前端能完成的逻辑,不请求到服务器上,从而减少消耗服务器资源2.前端请求服务器接口的过程,数据结构要精简,少内容处理复杂内容3.服务器则是需要对接口代码优化,逻辑优            
                
         
            
            
            
            # 使用 Redis 实现 MyBatis 二级缓存
在现代开发中,性能和效率至关重要。使用缓存机制可以大幅提高数据库访问的速度,从而提升整个应用的响应能力。本文将通过 Redis 实现 MyBatis 的二级缓存功能,帮助你快速上手。
## 整体流程
在实现 MyBatis 二级缓存之前,我们先理清整个流程。以下是实现过程中的主要步骤:
| 步骤 | 描述            
                
         
            
            
            
              工作中用到了springboot的缓存,使用起来挺方便的,直接引入redis或者ehcache这些缓存依赖包和相关缓存的starter依赖包,然后在启动类中加入@EnableCaching注解,然后在需要的地方就可以使用@Cacheable和@CacheEvict使用和删除缓存了。这个使用很简单,相信用过springboot缓存的都会玩,这里就不再多说了。美中不足的是,springboot使用            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-16 15:37:56
                            
                                85阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、为什么使用多级缓存        缓存的使用是解决高并发问题的一个重要途径,所以缓存很重要。一般情况下使用本地缓存,如ehcache,guava等就可以了,但是针对分布式、集群架构,本地缓存无法做到相互之间数据保持一致,如果使用redis缓存,则需要不断的去连接redis,这个中间也是有一定的资源消耗,在并发较小的时候这些消耗不影响系            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-22 17:09:19
                            
                                234阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            上次谈到了 mybatis一级缓存实际上是SqlSession级别的缓存,多个SqlSession并不共享,针对这种情况,我们可以使用mybatis二级缓存来处理。1.mybatis二级缓存是什么mybatis二级缓存是mybatis的另一种缓存机制,区别于一级缓存,它是namespace级别,即一个mapper一个缓存,相互独立,互不影响。默认不开启,需要配置开启。同一namespace下的多个            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-03 09:29:33
                            
                                239阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            第三方缓存实现–EhCache: 查看百度百科 Ehcache是一种广泛使用的java分布式缓存,用于通用缓存;SpringBoot 使用 EhCache 二级缓存1、pom.xml 引入<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-20 11:44:28
                            
                                64阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            缓存系统的用来代替直接访问数据库,用来提升系统性能,减小数据库负载。早期缓存跟系统在一个虚拟机里,这样内存访问,速度最快。 后来应用系统水平扩展,缓存作为一个独立系统存在,如redis,但是每次从缓存获取数据,都还是要通过网络访问才能获取,效率相对于早先从内存里获取,还是不够逆天快。如果一个应用,比如传统的企业应用,一次页面显示,要访问数次redis,那效果就不是特别好,性能不够快不说,还容易            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-03 11:09:38
                            
                                72阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            mybatis一级缓存mybatis一级缓存是默认开启的,是SqlSession级别的缓存,在操作数据库的时候需要创建一个SqlSession,其中有一个HashMap,用于存储缓存数据。不同的SqlSession之间,其缓存数据的HashMap是不同的;
所以当我们多次调用同一个Mapper和同一个方法的同一个参数,只会进行一次数据库查询,然后把数据缓存到缓冲中,以后直接先从缓存中取出数据,不会            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-25 23:17:04
                            
                                162阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、 设计目的支持Spring Boot 服务下,Redis + Caffeine的高性能分布式缓存的实现。减少应用服务的集成接入成本,快速实现缓存, 通过AOP方式拦截处理, 不侵入原业务逻辑。支持多种功能特性,如异步、超时(全局/单条控制)、压缩等,满足各种业务场景需要。二、 服务结构应用服务通过集成GEMINI-CACHE缓存组件, 实现对应用服务接口的缓存功能,内部通过AOP机制做拦截处理            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-28 16:31:35
                            
                                175阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Springboot集成redis实现Mybatis的二级缓存二级缓存的作用范围为当前的namespace,如果为两张表的二级缓存,可以使用导入依赖<!--Stringboot集成redis-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifact            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-20 19:58:12
                            
                                94阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            po类 得实现序列化接口 在sqlMapConfig.xml文件中添加<settings>
        <!--哇哇哇 开启二级缓存-->
        <setting name="cacheEnable" value="true"/>
    </settings>在XXXMapper.xml文件中添加(此标签有好多属性,在最下面)<            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-28 20:08:27
                            
                                75阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            为什么要用三级缓存来解决循环依赖问题前言版本约定正文分析:如果只使用一级缓存疑问:如果在 createBeanInstance 之后就生成代理对象放入一级缓存呢?分析:如果只使用二级缓存Spring 为什么不用二级缓存来解决循环依赖问题?辟谣:使用二级缓存解决不了 AOP 代理 bean 的循环依赖?小结SpringIoC源码视频讲解: 前言前面的文章 中,我们分析了 Spring 是怎样使用三            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-26 18:23:30
                            
                                33阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            什么是循环依赖?A创建时—>需要B---->B去创建—>需要A,从而产生了循环  什么情况下循环依赖可以被处理?  从上面的测试结果我们可以看到,不是只有在setter方法注入的情况下循环依赖才能被解决,即使存在构造器注入的场景下,循环依赖依然被可以被正常处理掉。三级缓存三级缓存是通用的叫法。singletonObjects,一级缓存,存储的是所有创建好了的单例Beanearly            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-26 11:33:46
                            
                                16阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前言mybatis可以自己带有二级缓存的实现,这里加上redis是想把东西缓存到redis中,而不是mybaits自带的map中。这也就构成了我们看到的springboot + mybatisplus +redis实现二级缓存的题目。具体步骤如下:首先加入需要的依赖<dependency>
    <groupId>org.springframework.boot</            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-14 22:45:14
                            
                                250阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1.注解方式开启Spring二级缓存1.1主启动类`@EnableCaching`1.2 需要加注解的方法在serviceimpl层加
查询:@Cacheable(value="userList")
新增:@CacheEvict(value="userList",allEntries = true)1.3 @Cacheable、@CacheEvict、@CachePut 解析1.31@Cachea            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-15 09:09:26
                            
                                70阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前言学习SpringBoot集成Mybatis的第二章,了解到Mybatis自带的缓存机制,在部署的时候踩过了一些坑。在此记录和分享一下Mybatis的缓存作用。什么是查询缓存MyBatis有一级缓存和二级缓存一级缓存首先看一下什么是一级缓存,一级缓存是指SqlSession。一级缓存的作用域是一个SqlSession。Mybatis默认开启一级缓存。在同一个SqlSession中,执行相同的查询            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-18 12:43:25
                            
                                24阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一,为什么要使用二级缓存?我们通常会使用caffeine做本地缓存(或者叫做进程内缓存),它的优点是速度快,操作方便,缺点是不方便管理,不方便扩展而通常会使用redis作为分布式缓存,它的优点是方便扩展,方便管理,但速度上肯定比本地缓存要慢一些,因为有网络io所以在生产环境中,我们通常把两者都启用,这样本地缓存做为一级缓存,虽然容量不够大,但也可以把热点数据缓存下来,把高频访问拦截在redis的上            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-29 14:07:37
                            
                                184阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            缓存设计MyBatis将数据缓存设计成两级结构,分为一级缓存、二级缓存:       一级缓存是Session会话级别的缓存,位于表示一次数据库会话的SqlSession对象之中,又被称之为本地缓存。一级缓存是MyBatis内部实现的一个特性,用户不能配置,默认情况下自动支持的缓存,用户没有定制它的权利(不过这也不是绝对的,可以通过开发插件对它进行修改);&            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-06 22:49:12
                            
                                306阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            SpringBoot+Mybatis使用Redis作为二级缓存实现与解决删除/修改/新增无法更新缓存【调用clear方法】的问题。一. 搭建环境二.获取Redis客户端的工具类三. 自定义Redis缓存类,实现Cache接口。四.开启二级缓存,设置缓存五.特别注意点 一. 搭建环境配置Maven。SpringBoot整合Redis。SpringBoot整合Mybatis。父pom.xml文件如下            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-13 14:43:41
                            
                                26阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            目录一、简介二、SpringBoot 集成 Caffeine、Redis实现双重缓存一、简介在上一篇文章中,我们介绍了直接引入 Caffeine 依赖,然后使用 Caffeine方法与Redis实现了双重缓存,除了这种方式外,我们还可以引入 Caffeine 和 Spring Cache 依赖,这样我们可以使用 SpringCache 注解方法实现本地缓存。下面我们引入 Caffeine 和 Sp            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-14 06:56:18
                            
                                281阅读
                            
                                                                             
                 
                
                                
                    