- 浏览: 65179 次
- 性别:
- 来自: 杭州
最新评论
-
wuhoujian322:
那么完美的实现方式应该是怎样的呢?
单例模式 -
somefuture:
这样防止不了反射侵入
单例模式 -
wuhoujian322:
Redis我也是刚开始学习,它是一个内存数据库,不像传统的关系 ...
Spring MVC结合Redis小实例 -
masuweng:
Redis不熟悉,主要的应用场景是什么?
Spring MVC结合Redis小实例 -
wuhoujian322:
大家遇到的问题也可以发出来,共同研究研究,一起进步。
Spring MVC结合Redis小实例
文章列表
这里我们针对一个具体的场景,来说说一个Web项目的性能优化。场景就是:一个Web前端的请求发出之后,需要等待比较长的时间,才能得到完整的响应。针对这种情况,我们需要怎么考虑呢?三个方面:Web前端层面,应用服务器层面和存储层面。下面我们来简单说说。
一、Web前端性能优化
1.优化浏览器的访问,主要包括:减少HTTP的请求数,像各种css、js和图片能合并就合并;使用浏览器缓存;压缩页面等。
2.使用CDN加速,缓存各种静态资源。
3.使用反向代理。
二、应用服务器性能优化
1.优化我们的代码,改善设计等。
2.使用分布式缓存,将那些读写比很高并且很少变化的 ...
一、Elastic Search的Head插件
在Elastic Search初探第一篇中我们说到了Kibana,通过它我们可以以UI的方式来操作ES、监控ES等。这里分享ES好用的另外一个插件——Head。具体使用步骤如下:
第一步:下载插件,地址为:https://github.com/mobz/elasticsearch-head/archive/master.zip;
第二步:解压第一步下载的文件,由于head插件是一个node项目,所以我们本地需要安装了node,安装步骤这里就跳过;
第三步:执行npm install安装head插件的各个模块,最后运行:np ...
1.Nginx代理静态目录配置
server {
listen 80;
server_name 公网域名;
#charset koi8-r;
access_log 访问日志目录 main;
location / {
root 需要代理的静态目录;
try_files $uri $uri/ @router;
index index.html;
expires -1;##配置所有资源不缓存
}
location ...
一、认识ElasticSearch
是一个基于Lucene的开源搜索引擎,通过简单的RESTful API来隐藏Lucene的复杂性。全文搜索,分析系统,分布式数据库;elasticsearch的革命性就在于将这些单一的有用的技术整合成一个一体化的”实时的应用”。
二、ElasticSearch环境搭建
1.安装ElasticSearch
从官网下载,https://www.elastic.co/downloads/elasticsearch,选择自己想要的版本下载到本地,然后解压;
2.安装Kibana
从官网下载,https://www.elastic.co/do ...
一、我们为什么要使用私服?
主要有两个目的:第一个,避免直接从远程仓库下载我们在自己的项目中需要的构件;第二个,部署我们自己的公共构件到一个私有的仓库(我们自己的私服),方便在各个项目中共享。
二、私服环境搭建
这里我们基于Linux环境搭建。
第一步:下载nexus包(wget https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.11.2-03-bundle.tar.gz
);
第二步:解压(tar -xzvf nexus-2.11.2-03-bundle.tar.gz -C nexus);
...
一、Jenkins集成Maven
1.Jenkins默认集成了Maven integration plugin插件;
2.系统管理 -> 系统设置 -> Global Tool Configuration
配置Maven安装目录以及配置文件目录settings.xml
3. My Views -> 具体的构建任务 -> 配置 -> 构建
增加构建步骤(Maven version,Goals,POM)
二、Jenkins集成Git
1.Jenkins默认集成了Git Plugi ...
第一种方式:通过安装包的方式安装jenkins(本地采用的方式)
设置端口:sudo defaults write /Library/Preferences/org.jenkins-ci httpPort 7070
启动Jenkins: sudo launchctl load -w /Library/LaunchDaemons/org.jenkins-ci.plist
重启Jenkins: sudo launchctl unload -w /Library/LaunchDaemons/org.jenkins-ci.plist
第二种方式:通过把war包放入tomcat进行运 ...
1.搜索
yum search tomcat
2.安装
yum -y install tomcat6 tomcat6-webapps tomcat6-admin-webapps tomcat6-docs-webapp tomcat6-javadoc
3.查看tomcat安装路径命令
rpm -ql tomcat6 | cat -n
4.tomcat启动、关闭和重新启动
service tomcat6 start
service tomcat6 stop
service tomcat6 restart
同传统的Spring项目相比,在基于SpringBoot实现的项目中添加定时器十分容器,那具体怎么做呢?
1.启动类Application添加注解@EnableScheduling;
2.在我们需要定时执行的方法上添加注解@Scheduled
3.实例
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
* 定时器
*
*/
@Component
public cl ...
为什么要使用异步事件呢?就是为了快速响应前端的请求,让那些耗时较长的任务在后台独立执行,比如大量数据的导出,邮件发送等等。使用异步事件,可以很好地提高用户的体验。那么异步事件该如何使用呢,分为如下几步:
1.定义事件
定义一个事件类,继承ApplicationEvent;
import org.springframework.context.ApplicationEvent;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* 自定义spring事件基类, ...
大家知道,框架中的拦截器就是用来拦截用户的请求,检查用户的每一个请求是否合法。那么我们基于SpringBoot框架,如何来使用拦截器呢?
1.定义拦截器
继承HandlerInterceptorAdapter类,该接口有三个方法,分别如下:
a.preHandle(用得比较多):预处理回调方法,实现处理器的预处理(如登录检查)
返回值:
true - 表示继续流程(如调用下一个拦截器或处理器);
false - 表示流程中断(如登录检查失败),不会继续调用其他的拦截器或处理器,此时我们需要通过response来产生响应;
b ...
一 . 事务1.基础概念
(1)概念:redis中的事务是一组命令的集合。事务和命令一样都是redis的最小执行单位,一个事务中的命令要么全部执行,要么全部不执行;
(2)原理:先将属于用一个事务的所有命令发送给redis服务器,然后再让redis依次执行这些命令。
(3)语法示例:
127.0.0.1:6379> MULTI OK127.0.0.1:6379> LPUSH list 76 87 99QUEUED127.0.0.1:6379> RPOP list QUEUED127.0.0.1:6379> SET foo heloQUEUED127.0.0.1 ...
1.在/usr 目录下建立文件夹java,mkdir java
2.cd java ,执行命令 wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u111-b14/jdk-8u111-linux-x64.tar.gz 如果没有权限,加上sudo。
3.解压下载下来的jdk-8u111-linux-x64.ta ...