缓存服务器

php高并发之opcache详解--真的可以变快

心已入冬 提交于 2020-03-01 19:19:59
客户的一台服务器,业务逻辑比较简单 。估算pv在120w左右吧,用的是阿里云2c4g的服务器。一大早就开始卡顿了,登陆服务器后查看负载到了八九十。 开整: 1.进入php,ini 搜索opcache 。 2,修改对应参数(如下) zend_extension=opcache.so #引入扩展 php7中默认已经装好了 可能是鼓励大家用吧 [opcache] ;opcache开关 opcache.enable=1 ;CLI环境下,PHP启用OPcache opcache.enable_cli=1 ;OPcache共享内存存储大小,单位MB opcache.memory_consumption=128 ;PHP使用了一种叫做字符串驻留(string interning)的技术来改善性能。例如,如果你在代码中使用了1000次字符串“foobar”,在PHP内部只会在第一使用这个字符串的时候分配一个不可变的内存区域来存储这个字符串,其他的999次使用都会直接指向这个内存区域。这个选项则会把这个特性提升一个层次——默认情况下这个不可变的内存区域只会存在于单个php-fpm的进程中,如果设置了这个选项,那么它将会在所有的php-fpm进程中共享。在比较大的应用中,这可以非常有效地节约内存,提高应用的性能。 这个选项的值是以兆字节(megabytes)作为单位,如果把它设置为16,则表示16MB

高并发的概念及应对方法

喜夏-厌秋 提交于 2020-03-01 17:30:48
为什么学习高并发? 作为一名非CS科班出生的同学,在经过多年IT从业之后,明显能感受到职业生涯发展的后继无力,由于从事的是传统金融行业,对应的公司其实内心深处是不重视IT部门的,而我这种IT从业人员虽然已经是团队或者是部门非常重要的人员,但是最后再发展下去也就是一个业务专家,业务专家本质上的知识不是自身的知识体系,而是公司的知识体系,而只有技术知识体系才是自己的。于是早在18年我就开始了自己的转型学习之路,前期学习了网络知识、Java并发编程,再要想学习JVM时,命运无情的枷锁打断了我的学习进程,19年就在沉闷和潜伏中度过,终于到了20年了,也即将迈入而立之年,给自己定个目标,今年上半年一定要转型完成进入一家心仪的公司,在职业生涯的黄金时期认认真真的再CODE一下。先说一下转型目标,希望能从事高并发、高性能相关的开发工作,为什么会定这个目标?除了自己对这个领域感兴趣外,确实也能从某些知名大型企业的社会招聘能看到这些领域的需求岗位是比较旺盛的,截图如下: 什么是高并发? 再谈论什么是高并发之前,我觉得非常有必要先搞清楚并发、并行和高并发这几个概念,至少对于非CS科班出身的我,一直就不知道这几个是什么高深的内容。 并发、并行和高并发 网易公开课《清华大学公开课:7.3进程的特点》中是这么定义的并发和并行,并发是指在一个时间段内有多个进程在执行,只不过在人的角度看

大型系统的发布部署方案

痞子三分冷 提交于 2020-03-01 06:37:37
动态应用,是相对于网站静态内容而言,是指以c/c++、php、Java、perl、.net等服务器端语言开发的网络应用软件,比如论坛、网络相册、交友、BLOG等常见应用。动态应用系统通常与数据库系统、缓存系统、分布式存储系统等密不可分。   大型动态应用系统平台主要是针对于大流量、高并发网站建立的底层系统架构。大型网站的运行需要一个可靠、安全、可扩展、易维护的应用系统平台做为支撑,以保证网站应用的平稳运行。   大型动态应用系统又可分为几个子系统:   1)Web前端系统   2)负载均衡系统   3)数据库集群系统   4)缓存系统   5)分布式存储系统   6)分布式服务器管理系统   7)代码分发系统   Web前端系统   结构图:   为了达到不同应用的服务器共享、避免单点故障、集中管理、统一配置等目的,不以应用划分服务器,而是将所有服务器做统一使用,每台服务器都可以对多个应用提供服务,当某些应用访问量升高时,通过增加服务器节点达到整个服务器集群的性能提高,同时使他应用也会受益。该Web前端系统基于Apache/Lighttpd/Eginx等的虚拟主机平台,提供PHP程序运行环境。服务器对开发人员是透明的,不需要开发人员介入服务器管理   负载均衡系统   负载均衡系统分为硬件和软件两种。硬件负载均衡效率高,但是价格贵,比如F5等。软件负载均衡系统价格较低或者免费

JSP禁用缓存常用方法

被刻印的时光 ゝ 提交于 2020-03-01 03:21:15
jsp页面禁止缓存设置 1.客户端缓存要在<head>中加入类似如下内容: <META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> <META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT"> 或 <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> 2.在服务器的动态网页中禁止缓存,要加入类似如下脚本 response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires", 0); 3.设置有限时间的缓存 int minutes = 10; Date d = new Date(); String modDate = d.toGMTString()

爬虫之scrapy框架(二)

六月ゝ 毕业季﹏ 提交于 2020-02-29 17:32:07
目录 一、使用scrapy整站爬取网站信息 scrapy的真正起始爬取方法 使用scrapy整站爬取cnblogs网站信息大致思路 二、scrapy的请求传参 三、提升scrapy爬取数据的效率 四、scrapy的下载中间件 下载中间件使用代理池 scrapy settings详细介绍 五、selenium在scrapy中的使用流程 六、scrapy框架去重规则 七、scrapy-redis分布式爬虫 八、常见反扒措施 一、使用scrapy整站爬取网站信息 scrapy的真正起始爬取方法 当我们启动spider.py文件时,会执行我们设置好的 start_urls ,但是源码真正是如何处理的呢?我们进入scrapy.Spider查看源码,Spider类下有如下代码: def start_requests(self): cls = self.__class__#当前实例对象的类 if method_is_overridden(cls, Spider, 'make_requests_from_url'): warnings.warn( "Spider.make_requests_from_url method is deprecated; it " "won't be called in future Scrapy releases. Please " "override Spider

读书笔记:《高性能网站建设指南》

ε祈祈猫儿з 提交于 2020-02-29 16:34:25
读书笔记:《高性能网站建设指南》 这本书中给出了14条提升网站性能的规则,由于实践经验尚浅,这里只做读书的总结。 绪言A:前端性能的重要性    性能黄金法则:只有10%~20%的最终用户响应时间花在了下载HTML文档上,其余的80%~90%的时间花在了下载页面中的所有组件上。 绪言B:HTTP概述   压缩:减小响应的大小,浏览器可以使用Accept-Encoding头来生命它支持压缩。服务器使用Content-Encoding头来确认已被压缩。   条件GET请求:基于响应中的Last-Modified头,浏览器可以知道组件最后的修改时间。会使用If-Modified-since头将最后修改时间发送给服务器。   Expires头:通过明确指出浏览器是否可以使用组件的缓存副本来消除客户端和服务器之间进行一次往返确认的必要。   Keep-Alive:持久连接解决了多对一请求服务器导致的socket连接低效性的问题。 规则一——减少HTTP请求   图片地图(Image Map):允许你在一个图片上关联多个URL。目标URL的选择取决于用户单击了图片了上的哪个位置。   CSS Sprites合并图片。   内联图片:通过使用data:URL模式可以在Web页面中包含图片但无需任何额外的HTTP请求。   合并脚本和样式表。 规则二——使用内容发布网络   CDN:Content

SpringBoot整合Redis

こ雲淡風輕ζ 提交于 2020-02-29 10:39:26
前言 实际开发中缓存处理是必须的,不可能我们每次客户端去请求一次服务器,服务器每次都要去数据库中进行查找,为什么要使用缓存?说到底是为了提高系统的运行速度。将用户频繁访问的内容存放在离用户最近,访问速度最快的地方,提高用户的响应速度,今天先来讲下在 Spring Boot 中整合 Redis 的详细步骤。 一、安装 Redis 下载地址 : https://redis.io/download 首先要在本地安装一个 redis 程序,安装过程十分简单(略过),安装完成后进入到 Redis 文件夹中可以看到如下: 点击 redis-server.exe 开启 Redis 服务,可以看到如下图所示即代表开启 Redis 服务成功: 那么我们可以开启 Redis 客户端进行测试: 二、整合到 Spring Boot 1 、在项目中加入 Redis 依赖, pom 文件中添加如下。 <!-- 整合Redis缓存支持 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>    2 、在 application.yml 中添加 Redis 配置。 ##默认密码为空 redis: host:

SSH三大框架的工作原理及流程

帅比萌擦擦* 提交于 2020-02-29 09:06:35
Hibernate工作原理及为什么要用? 原理: 1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件 2.由hibernate.cfg.xml中的<mapping resource="com/xx/User.hbm.xml"/>读取并解析映射信息 3.通过config.buildSessionFactory();//创建SessionFactory 4.sessionFactory.openSession();//打开Sesssion 5.session.beginTransaction();//创建事务Transation 6.persistent operate持久化操作 7.session.getTransaction().commit();//提交事务 8.关闭Session 9.关闭SesstionFactory 为什么要用: 1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作 3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库

html标签中meta属性使用介绍

。_饼干妹妹 提交于 2020-02-28 18:06:58
前言 meta是html语言head区的一个辅助性标签。也许你认为这些代码可有可无。其实如果你能够用好meta标签,会给你带来意想不到的效果,meta标签的作用有:搜索引擎优化(SEO),定义页面使用语言,自动刷新并指向新的页面,实现网页转换时的动态效果,控制页面缓冲,网页定级评价,控制网页显示的窗口等! html的meta总结 meta标签的组成:meta标签共有两个属性,它们分别是http-equiv属性和name属性,不同的属性又有不同的参数值,这些不同的参数值就实现了不同的网页功能。 1、name属性 name属性主要用于描述网页,与之对应的属性值为content,content中的内容主要是便于搜索引擎机器人查找信息和分类信息用的。 meta标签的name属性语法格式是: <meta name="参数"content="具体的参数值">。 其中name属性主要有以下几种参数:  A、Keywords(关键字)   说明:keywords用来告诉搜索引擎你网页的关键字是什么。 举例: <meta name="keywords"content="meta总结,html meta,meta属性,meta跳转"> B、description(网站内容描述) 说明:description用来告诉搜索引擎你的网站主要内容。 举例: <meta name="description

php---header函数设置浏览器缓存

落爺英雄遲暮 提交于 2020-02-28 17:27:32
这涉及到4种头标类型: Last-Modified(最后修改时间); Expires(有效期限); Pragma(编译指示); Cache-Control(缓存控制); 前三个头标属于HTTP1.0标准。头标Last-Modified使用UTC日期时间值。如果缓存系统发现Last-Modified值比页面缓存版本的更接 近当前时间,他就知道应该使用来自服务器的新版本。 Expires 表明了缓存版本何时应该过期(格林威治标准时间)。把它设置为一个以前的时间就会强制使用服务器上的页面。 Pragma生命了页面数据应该如何被处理。可以这样避免对页面进行缓存: header("Pragma:no-cache"); Cache-Control 头标是在HTTP1.1里添加的,能够实现更细致的控制(还应该继续使用HTTP1.0头标)。Cache-Control的设置有 很多,如下表: 指令 含义 public 可以在任何地方缓存 private 只能被浏览器缓存 no-cache 不能在任何地方缓存 must-revalidate 缓存必须检查更新版本 proxy-revalidate 代理缓存必须检查更新版本 max-age 内容能够被缓存的时期,以秒表示 s-maxage 覆盖共享缓存的max-age设置 下面实例利用header()设置浏览器的缓存: <?php # Script 2