文档章节

Java Web中的缓存层框架

marvin_vov
 marvin_vov
发布于 2016/04/19 18:22
字数 432
阅读 345
收藏 18

简述

在web系统中,常见的加速系统访问的手段有对页面静态化,缓存页面,缓存数据,负载均衡等,缓存层起到了非常重要的作用,目前常用到的缓存组件有Redis,memcache等,对于缓存要求较高的项目,Redis的集群管理框架codis也是很不错的选择;

缓存层

在代码开发过程中,为了减少编码,降低缓存和业务代码的耦合度,我们需要把缓存从繁杂的业务代码中抽离出来,成为缓存层,仅仅这样还是不够的,在这里,我不仅仅把缓存层抽离出来,还进一步增强了可插拔性,从而更加方便对缓存进行管理,从这里思路出发,我在这里做了一个简单的缓存层,并且已经在实战项目中运行了很长一段时间,目前仅仅支持redis,但是代码层次具有可扩展性,在后面要加入codis。

项目代码:https://github.com/yamorn/cache-support

整体逻辑如下图:

调用service或者dao中需要缓存的接口时,使用aop拦截,查询缓存,如果缓存中存在,则直接返回,如果缓存中不存在,则查询数据库,将查询的结果返回调用层,与此同时也要把结果存入缓存;

声明缓存的命名空间,便于对个缓存进行管理和清除。在需要缓存的方法上加上注解,即刻达到缓存的目的,很大程度上降低了缓存层和业务代码的耦合度。

本文转载自:http://blog.csdn.net/yamorn/article/details/51192760

共有 人打赏支持
marvin_vov
粉丝 18
博文 38
码字总数 17937
作品 0
其他
程序员
NodeJS对于Java开发者而言是什么?

我们都知道Node.js现在得到了所有的关注。每个人都对学习Node.js感兴趣,并希望可以工作于Node.js。在开始工作之前了解技术背后的概念总是不会错的。但对初学者来说,可能会因为不同的人使用...

城固如春
2017/10/21
0
0
SSM三大框架整合(Spring+SpringMVC+MyBatis)

1、基本概念 1.1、Spring Spring 是一个开源框架, Spring 是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作 Expert One-On-One J2EE Development and Design 中阐述...

qq592fbb5b34ad7
07/02
0
0
9个基于Java的搜索引擎框架

9个基于Java的搜索引擎框架 [导读] Lucene是目前最受欢迎的Java全文搜索框架,准确地说,它是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene为开发人员...

引鸩怼孑
2015/07/30
0
0
编写高性能 Java 代码的最佳实践

摘要:本文首先介绍了负载测试、基于APM工具的应用程序和服务器监控,随后介绍了编写高性能Java代码的一些最佳实践。最后研究了JVM特定的调优技巧、数据库端的优化和架构方面的调整。以下是译...

这篇文章
06/20
0
0
从java程序员到CTO的成长路线图

很多新人不知道从事java开发,具体的发展路径是怎么样的,甚至很多人都不能区分程序猿和攻城师的区别。包括不少小白,从事java开发都半年,甚至1年了,对职业发展还没有清晰的认证。这非常不...

6pker
2013/10/24
0
2

没有更多内容

加载失败,请刷新页面

加载更多

docker多容器部署lnmp环境

环境:RHEL7.5 ip:192.168.10.102,主机名:lb02 一、创建web、数据库目录 web网站目录为:/wwwroot,属主属组:www [root@lb02 ~]# mkdir /wwwroot[root@lb02 ~]# useradd -s /sbin/nolo...

人在艹木中
11分钟前
0
0
eclipse运行springboot项目报错‘找不到或无法加载主类’

这是一个很烦躁的问题~,往往困住大家好长时间,然后各种百度。借此,咱将这个问题有可能产生的原因进行一下总结。若有不完善之处欢迎大家在下面留言指出~~ Duang!问题出现 然后开始尝试解决...

Code辉
32分钟前
0
0
springboot oauth2 跨域设置

@Overridepublic void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/security/**") .authentica......

昆虫大侠
34分钟前
0
0
08-利用思维导图梳理JavaSE-泛型

08-利用思维导图梳理JavaSE-泛型 主要内容 1.泛型的基本概念 1.1.定义 1.2.使用前提 1.3.使用泛型的好处 2.泛型的使用 2.1.泛型类定义 2.2.泛型对象定义 2.3.泛型中的构造方法 2.4.泛型方法的...

飞鱼说编程
36分钟前
0
0
Docker 部署 Spring Boot 项目指南

仅想在Docker里运行一个Spring Boot项目,捣鼓了许久。。。 本文主要适用于Windows环境下的Docker 一、运行环境 Windows 10 Maven 3.5 Docker 18.06.1-ce-win73 (19507) 二、创建Spring Boot...

AmosWang
41分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部