在我实践自己拓展的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架构设计实践,微博Cache架构设计实践,微博Cache架构设计实践
facebook开发的flashcache官方架构文档。权威,翔实。
百度cdn cache架构,原理实现、核心功能、优缺点、及性能
twitter cache缓存架构图.png
cache实验cache实验cache实验cache实验cache实验cache实验cache实验cache实验cache实验cache实验cache实验cache实验cache实验cache实验cache实验cache实验cache实验cache实验cache实验cache实验cache实验cache实验...
cache基本架构&基本概念.pdf
ExpressCache可以让电脑上面只需要安装一个20来G的小msata固态SSD硬盘就可以让整台电脑的读写性能大增,启动时间达到几乎和完全使用SSD硬盘一样的速度(虽然比不上真正的全固态),不过对于平时使用来说,已经是很...
Intel Cache Acceleration Software 最新版 Premium primocahe CAS 傲腾内存
该工程包含数据缓存D_Cache和指令缓存I_Cache的Verilog代码和仿真文件,Cache的详细技术参数包含在.v文件的注释中。 直接相连16KB D_Cache Cache写策略: 写回法+写分配 (二路)组相连16KB I_Cache Cache替换策略: ...
当片上多处理器系统上运行多个不同程序时,如何给这些不同的应用程序分配适当的cache空间成为一个难题。Cache划分就是解决这一难题的有效方法,目前大部分的划分方法都是针对最后一级共享cache设计的。私有cache划分...
头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2路组相联cache设计头歌计算机组成原理2...
3) 改变Cache容量(*2,*4,*8,*64),运行程序(指明所选的测试程序),统计各种失效的次数,并分析Cache容量对Cache性能的影响; 4) 改变Cache的相联度(1路,2路,4路,8路,64路),运行程序(指明所选的测试...
java连接cache数据库说明,数据库驱动,cache可视化工具
WordPress支持很丰富的插件功能,通过这些插件功能极大的完善了,凡事都具有两面性,有利有弊,有时WordPress的插件会出现插件相冲突的事件,例如:wp super cache与postviews插件二者就有冲突,这对于一些朋友来说...
通过使用服务器的系统存储器来存储最常使用的数据,并在存储器而不是磁盘上执行读写请求,它打破了磁盘 I/O瓶颈。 它的基本工作原理如下:SuperCache智能化地将经常使用的磁盘数据存储在系统存储器中,这块系统存储...
expresscache是联想推出的一款固态硬盘缓存加速软件,适用于小容量固态加普通机械硬盘的加速技术,此软件有解除品牌机型限制补丁,安装后不要运行,打补丁即可。适用win7,win8,win10
cache-jdbc
THREAD_CACHE MySQL里面为了提高客户端请求创建...这样的好处就是,当又有一个新的请求的时候,mysql不会立即去创建连接 线程,而是先去Thread_Cache中去查找空闲的连接线程,如果存在则直接使用,不存在才创建新的连接线程.
赠送jar包:cache-api-1.1.1.jar; 赠送原API文档:cache-api-1.1.1-javadoc.jar; 赠送源代码:cache-api-1.1.1-sources.jar; 赠送Maven依赖信息文件:cache-api-1.1.1.pom; 包含翻译后的API文档:cache-api-...