在我实践自己拓展的spring aop cache spring cache 拓展 过程中,我对如何大幅提高程序性能方面又有了些新的见解。
通过良好的设计,通过spring aop cache 确实是可以达到完全覆盖数据库操作,这样就意味着数据库操作可以被省略。
我发现这个过程中还存在一个敌人:数据库主键。
因为主键的存在,save操作必须经过数据库的返回。解决这个办法也简单:自己生成主键。
如此一来,你的数据就能简单、高效的在需要存储的时候存储到数据库中。
你需要做的仅仅是把现有的业务“不合理”的地方进行些变通。另外,你的业务最好有比较清晰分层结构。
写到这里,我发现如果把save操作屏蔽掉,spring aop cache里面有一个逻辑上的bug。
那就是在对集合的维护上和save操作没有顺序。
例如2个方法:
1、save(User)
2、find(Integer uid);
如果方法1先执行,save操作屏蔽了数据库操作,没有保存数据到数据库。那么执行2方法的时候数据是不完整的。
而如果反过来着没有这个问题。
我对spring aop cache的拓展重点在于对集合缓存的维护上,也通过这种方式对数据库操作进行屏蔽。
这种设想源于freyja1,现在通过对具体业务结合,实现起来更加简单也更加的高效!
分享到:
相关推荐
【标题】:“同时多线程处理器上的Cache性能分析与优化.pdf” 【摘要】:这篇论文主要探讨了在同时多...通过提出新的Cache架构设计和模拟验证,作者展示了改进的性能,这对于理解和改进现代多核处理器的性能至关重要。
此外,还可以分析特定应用或算法对缓存友好程度,这对于编写高效的代码和设计适应性强的硬件架构至关重要。 在实际操作中,使用这样的模拟器可以避免直接在硬件上进行大量实验,节省时间和资源。同时,它也提供了一...
《多核处理器片上存储系统研究》这篇博士论文主要探讨了多核处理器在提升...总的来说,这篇论文为理解和优化多核处理器的片上存储系统提供了深入的理论和技术见解,对于提高多核处理器的性能和效率具有重要的参考价值。
总的来说,这份学习教案深入探讨了SNS系统背后的复杂设计,包括消息处理、数据模型优化和Cache管理,为理解大型社交网络服务的运作提供了宝贵的见解。对于想要从事或已经在IT行业中涉及SNS开发的人员来说,这是一个...
【标题】:“cachehit:这是我的个人博客,使用 github pages 和 jekyll 托管在 github 上” 【描述】:“这是我的个人博客,使用 github pages 和 jekyll 托管在 github 上。” 这篇描述简单地介绍了一个个人博客...
Devops维基| 该存储库包含devops Wiki的内容,该内容通过提供。 对测试提交进行小的更改添加到分支如何运行维基该Wiki的图像位于Dockerhub中,因此您可以简单地运行它并开始浏览。... docker build \ --no-cache \
具体而言,这包括对存储器层次结构、缓存(Cache)、存储器管理、片上总线设计、片上调试以及产品测试等关键问题的深入讨论。 ARM系列处理器是该领域中最著名的微处理器之一,Steve Furber教授在ARM公司的工作经历和...
通过阅读和分析这些内容,我们可以学习到如何在硬件层面上设计和实现缓存系统,包括地址映射、缓存命中和未命中的处理、以及如何在不同缓存级别之间进行数据迁移。 文件名"cache-low-level-system-design-master...
- **新的存储引擎**:例如InnoDB的改进版本和其他新出现的存储引擎。 - **查询优化技巧**:介绍了最新的查询优化策略和技术。 - **复制与分区**:深入探讨了MySQL的复制机制以及分区表的使用方法。 - **安全性和备份...
K210是一款双核RISC-V架构的微控制器,广泛应用于嵌入式系统。以下是对标题和描述中提及的知识点的详细解释: 1. **CPU核数、频率和内存大小查询**: 在嵌入式系统中,通常通过设备树(Device Tree)来配置和查询...
技术总监黄斯亮分享了他的见解和全民K歌的实践。 首先,黄斯亮分享了全民K歌在后台架构演进的几个关键点。其中包括流媒体服务的优化、社交关系链的管理、直播系统架构的设计、容灾方案的选择以及业务安全体系的构建...
- **新见解**:提供了一些新颖的观点和见解,帮助读者更好地理解和运用Exadata技术。 ##### 16. Cell CLI 和 dcli - **命令行工具**:介绍了Exadata提供的两种命令行工具:Cell CLI 和 dcli,用于管理和监控...
这个系统旨在为用户提供一个简洁、功能丰富的平台,用于分享思想、经验和见解。通过深入理解这个源码,我们可以学习到ASP.NET的核心特性以及如何将这些特性应用到实际项目开发中。 ASP.NET是微软公司推出的Web应用...
存储方面,文档详细介绍了与ESXi存储相关的注意事项,包括vSphere Flash Read Cache (vFRC)、VMware vStorage APIs for Array Integration (VAAI)、LUN访问方法、虚拟磁盘模式、链接克隆技术、虚拟磁盘类型、分区...
此外,演讲还提到了负载均衡(Load Balancer Service)和缓存数据库(Cache DB)在高可用架构中的作用。负载均衡器可以有效地分散流量,防止单个服务器过载,提高系统的整体响应能力。而缓存数据库则能够减少对后端...
LISP协议通过将IP地址划分为端点标识符(EIDs)和定位符来分离标识符与定位符的角色,以便在不同层面上区分节点识别与节点定位功能。在LISP协议中,数据包通过封装和映射的方式,从入口隧道路由器(ITRs)路由到出口...
首先,我们来了解一下高速缓存(Cache)。高速缓存是现代计算机体系结构中的关键组件,它的存在是为了减少处理器访问主内存时的延迟。高速缓存通常位于CPU内部,通过存储最近频繁使用的数据来提高数据访问速度。当...
提供了对该项目基础的设计原理的一些见解。 包含了我对该项目的粗略开发路线图。 建立开发环境 前端开发 克隆此仓库 运行npm install npm run dev将启动本地开发环境(默认为http://localhost:1234/index.html )...
文档中提到了Pin动态二进制插桩系统最新版本中采用的几项设计决策,包括即时编译器(just-in-time compiler)、模拟器(emulator)和代码缓存(code cache)。整个设计旨在为现代应用程序提供可扩展的性能和内存占用...