缓存服务器

数据库缓存

自古美人都是妖i 提交于 2019-12-23 13:10:58
1.What a) mysql 等一些常见的关系型数据库的数据都存储在磁盘当中,在高并发场景下,业务应用对 mysql 产生的增删改查操作造成巨大的 I/O 开销和查询压力,这无疑对数据库和服务器都是一种巨大的压力,为了解决此类问题,缓存数据的概念应运而生。 b) 极大地解决数据库服务器的压力 c) 提高应用数据的响应速度 d) 常见的缓存形式:内存缓存(可避免 I/O 开销)、文件缓存 2.Why a) 缓存数据是为了让客户端减少甚至不访问数据库服务器进行数据的查询,高并发下,能最大程度地降低对数据库服务器的访问压力。 b) 默认不使用缓存时的情况:用户请求 - 》数据查询 - 》连接数据库服务器并查询数据 - 》将数据缓存起来( HTML 、内存、 JSON 、序列化数据) - 》显示给客户端 c) 用户再次请求或者新用户访问 - 》数据查询 - 》直接从缓存中获取数据 - 》显示给客户端 注意:缓存需要考虑的内容(缓存方式的选择、缓存场景的选择、缓存数据的实时性) 3. 使用 Mysql 查询缓存 ( 粒度小,了解下即可 ) a) 启用 mysql 查询缓存 query_cache_type ( 0 :不使用 1 :始终使用 2 :按需使用) 1.query_cache_type=1时,也可以关闭查询缓存:Select SQL_NO_CACHE * from table

网站的高性能架构---应用服务器性能优化

╄→尐↘猪︶ㄣ 提交于 2019-12-23 05:44:53
应用服务器就是处理网站业务的服务器,网站的业务代码都部署在这里,是网站开发最复杂,变化最多的地方,优化手段主要有缓存、集群和异步等。 分布式缓存   缓存无处不在,既存在于浏览器、也存在于服务器和数据库;既可以对数据缓存,也可以对文件缓存,还可以对页面片段进行缓存。   网站性能优化第一定律:优先考虑使用缓存优化性能。 缓存的基本原理   缓存是指将数据存储在相对较高访问速度的存储介质中。一方面缓存访问熟读快,可以减少访问时间;另一方面如果缓存的数据是经过计算处理得到的,那么被缓存的数据无需重复计算即可直接使用,因此缓存还可以减少计算时间。 缓存的本质是一个内存HASH表,网站应用中,数据缓存以一对Key、Value的形式存储在Hash表中。缓存主要用来存放读写频率比较高、很少变化的数据。应用程序读取数据时,先到缓存中读取,先到缓存中读取,如果读取不到或数据已经失效,再访问数据库,并将数据写入缓存。   2.合理使用缓存 使用缓存对提高系统性能有很多好处,但是不合理使用缓存非但不能提高系统的性能,还会成为系统的累赘,甚至风险。    频繁修改的数据 :如果缓存中保存的是频繁修改的数据,就会出现数据写入缓存后,应用还来不及读取缓存,数据就已经失效,徒增系统负担,还可能读取到脏数据。    没有热点的访问: 缓存使用内存作为存储,如果应用程序访问数据没有热点,那么缓存就没有意义。   

memcache/redis 缓存学习笔记

陌路散爱 提交于 2019-12-23 03:06:37
0、redis和memcache的区别 a、redis可以存储除了string之外的对象,如list,hash等 b、服务器宕机以后,redis会把内存的数据持久化到磁盘上,而memcache则不会 1、linux下redis安装   a、rz redis.gz.tar   b、tar解压:tar xzf redis-3.2.6.tar.gz   c、在新生成的src中执行make编译   d、./redis-server & 服务端启动   e、在新生成的src中执行./redis-cli 客户端启动   1)notice:注意默认启动 redis-server redis.conf 会报错 , 原因参考redis有三种启动的方式: http://www.tuicool.com/articles/aQbQ3u   2)3.启动redis server后,SecureCRT进入redis-cli,输入不断在后面追加IP:Port显示 设置当前的Session Options-->Terminal-->Emulation-->Terminal为Linux 2、redis.conf配置文件   设置端口,保存数据到磁盘的机制,存入对象如hash等的大小的限制。 1 daemonize yes #---默认值no,该参数用于定制redis服务是否以守护模式运行。--- 2 pidfile

nginx缓存配置及开启gzip压缩

a 夏天 提交于 2019-12-23 02:14:05
一:nginx缓存配置 二:nginx开启gzip 一:nginx缓存配置 在前一篇文章,我们理解过http缓存相关的知识点, 请看 这篇文章 . 今天我们来学习下使用nginx服务来配置缓存的相关的知识。 nginx配置缓存的优点:可以在一定程度上,减少服务器的处理请求压力。比如对一些图片,css或js做一些缓存,那么在每次刷新浏览器的时候,就不会重新请求了,而是从缓存里面读取。这样就可以减轻服务器的压力。 nginx可配置的缓存又有2种: 1)客户端的缓存(一般指浏览器的缓存)。 2)服务端的缓存(使用proxy-cache实现的)。 客户端的缓存一般有如下两种方式实现: 协商缓存和强缓存。具体理解什么是协商缓存或强缓存,可以看 这篇文章 . 在配置之前,我们来看下我们的项目基本架构如下: |----项目demo | |--- .babelrc # 解决es6语法问题 | |--- node_modules # 所有依赖的包 | |--- static | | |--- index.html # html页面 | | |--- css # 存放css文件夹 | | | |--- base.css # css文件,是从网上随便复制过来的很多css的 | | |--- js # 存放js的文件夹 | | | |--- jquery-1.11.3.js # jquery 文件 | |

HTTP请求流程你了解了么?

萝らか妹 提交于 2019-12-22 22:52:14
预备知识 前文没有描述到传输和协议直接的层级对应关系,大概补充下网络通信中数据传输对应的协议,首先了解下OSI(开放式系统互联:Open System InterConnection)七层 模式,及其对应不同层次的协议。 OSI体系结构 TCP/IP相关协议结构 应用层 HTTP,Telnet,FTP等 表示层 会话层 传输层 TCP,UDP 网络层 IP 数据链路层 物理层 了解到HTTP协议是建立在TCP连接基础之上的。 HTTP 是一种允许浏览器向服务器获取资源的协议,是 Web 的基础 ,通常由浏览器发起请求,用来获取不同类型的文件, 例如 HTML 文件、CSS 文件、JavaScript 文件、图片、视频等。此外,HTTP 也是浏览器使用最广的协议。 我们对HTTP不太了解的话都会存在这样的疑惑,为什么再次访问同一站点会比第一次快,登录过一次后的网站再次访问就处于登录状态等,我们 通过对HTTP请求过程的剖析来解开这些谜团。 浏览器端发起 HTTP 请求流程 浏览器输入网址: http://time.geekbang.org/index.html,之后会完成什么步骤呢 ? 1、构建请求 首先,浏览器构建 请求行 信息,构建好后,浏览器准备发起网络请求。 GET /index.html HTTP1.1 2、查找缓存 在真正发起网络请求之前

web网站加速之CDN(Content Delivery Network)技术原理

你离开我真会死。 提交于 2019-12-22 15:43:04
在不同地域的用户访问网站的响应速度存在差异,为了提高用户访问的响应速度、优化现有Internet中信息的流动,需要在用户和服务器间加入中间层 CDN . 使用户能以最快的速度,从最接近用户的地方获得所需的信息,彻底解决网络拥塞,提高响应速度,是目前大型网站使用的流行的应用方案. 1. CDN 概述 CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的 CACHE(缓存) 层,将网站的内容发布到最接近用户的网络 "边缘" 的节点,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,提高用户访问网站的响应速度。 Cache层的技术,消除数据峰值访问造成的结点设备阻塞。Cache服务器具有缓存功能,所以大部分网页对象(Web page object),如html, htm, php等页面文件,gif,tif,png,bmp等图片文件,以及其他格式的文件,在有效期(TTL)内,对于重复的访问,不必从原始网站重新传送文件实体, 只需通过简单的认证(Freshness Validation)- 传送几十字节的Header,即可将本地的副本直接传送给访问者。由于缓存服务器通常部署在靠近用户端,所以能获得近似局域网的响应速度,并有效减少广域带宽的消耗

关于ARP协议

别说谁变了你拦得住时间么 提交于 2019-12-22 15:19:04
什么是arp协议: arp协议是地址解析协议,英文是address resolution protocol 通过IP地址可以获得mac地址 两个主机的通信归根到底是MAC地址之间的通信 在TCP/IP的网络环境下,每个联网的主机都会被分配一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址 ,为了让报文能够在物理网络上传输,还必须要知道对方主机的物理地址(MAC地址),这样就存在把IP地址转换成物理地址的问题。 我们以以太网为例,为了正确的向目的主机发送报文,必须把目的主机的32位IP地址转换成48位的以太网地址(MAC地址),这就需要在互联层有各个服务或功能将IP地址转换成响应的物理地址,这个服务或者功能就是ARP协议。 所谓的“地址解析”,就是主机在发送帧之前将目的IP地址转换成目的主机的mac地址的过程, ARP协议的基本功能就是通过目标设备的IP地址,查询目标主机的MAC地址,以保证主机间互相通信的顺利进行 ARP协议和DNS有点相像之处,不同点是DNS在域名和ip地址之间解析,而ARP是在IP地址和MAC地址之间解析,当然,他们都支持反向解析 ARP代理(ARP proxy)的工作原理: ARP协议要求通信的主机必须在同一个物理网段内(局域网环境),如果不在同一个局域网内的话就需要ARP代理了 当发送主机和目的主机不在同一个局域网中时

Nginx配置文件nginx.conf中文详解

时光毁灭记忆、已成空白 提交于 2019-12-22 10:09:42
######Nginx配置文件nginx.conf中文详解##### #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数。 worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ] error_log /usr/local/nginx/logs/error.log info; #进程pid文件 pid /usr/local/nginx/logs/nginx.pid; #指定进程可以打开的最大描述符:数目 #工作模式与连接数上限 #这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。 #现在在linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。 #这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。 worker_rlimit_nofile 65535; events { #参考事件模型,use [

Web性能的几个常见瓶颈

不想你离开。 提交于 2019-12-22 03:52:29
瓶颈一:缓存 瓶颈一:压缩 前言:关于优化问题,随着项目经验不断累积,多方查找资料进行拼接合并,形成如下文章,之后遇到类似好的方法,会不断补充完善。 前端是庞大的,包括 HTML、 CSS、 Javascript、Image 、Flash等等各种各样的资源。前端优化是复杂的,针对方方面面的资源都有不同的方式。那么,前端优化的目的是什么 ? 从用户角度而言,优化能够让页面加载得更快、对用户的操作响应得更及时,能够给用户提供更为友好的体验。 从服务商角度而言,优化能够减少页面请求数、或者减小请求所占带宽,能够节省可观的资源。 总之,恰当的优化不仅能够改善站点的用户体验并且能够节省相当的资源利用。 =  一、页面级优化   1. 减少 HTTP请求数   这条策略基本上所有前端人都知道,而且也是最重要最有效的。都说要减少 HTTP请求,那请求多了到底会怎么样呢 ?首先,每个请求都是有成本的,既包含时间成本也包含资源成本。一个完整的请求都需要经过 DNS寻址、与服务器建立连接、发送数据、等待服务器响应、接收数据这样一个 “漫长” 而复杂的过程。时间成本就是用户需要看到或者 “感受” 到这个资源是必须要等待这个过程结束的,资源上由于每个请求都需要携带数据,因此每个请求都需要占用带宽。另外,由于浏览器进行并发请求的请求数是有上限的 (具体参见此处 ),因此请求数多了以后,浏览器需要分批进行请求

测试流程注意事项

不问归期 提交于 2019-12-22 02:00:56
一 需求分析阶段 二 设计分析阶段 三 开发联调自测阶段 四 提测阶段 五 测试执行 六 上线阶段 七 运营阶段 一 需求分析阶段 1.业务修改 现有业务修改是否清晰 核心逻辑是否遗漏 有无业务冲突 2.用户体验和影响 交互是否合理 会不会拉长交易流程 干扰用户选择 下单和支付响应时长 3.周边业务线的影响 是否清晰描述上下游系统的影响 4.安全 黑白名单 反作弊 开关 规则和阈值 5.旧数据兼容 二 设计分析阶段 系统结构: 针对项目需求,结合业务现状来评估RD设计的系统修改点是否合理 模块、系统间使用了什么接口、中间件进行通讯(http、dubbo、mq、缓存、数据库、定时任务等),是否合理,例如dubbo循环依赖等 - 画出当前的系统结构图 - 标注出系统结构的改动点 数据流: 能不能拿到自己想要的数据,做出的修改是否会对现有系统造成负面影响,例如数据结构不兼容,缓存结构不兼容等 - 接口和接口字段的CUD(增、改、删) - 数据存储的变化(表、字段) 三 开发联调自测阶段 1.根据需求和设计文档进行case设计和评审(后续自动化case同步进行?) 2.测试环境准备 分支 sql ng 权限配置等 3.跨团队项目的上下游沟通 测试计划沟通 和上下游模块沟通各自负责的测试计划安排、测试范围、测试重要场景、跨团队 测试数据的构造、配合的方式,把团队间的影响降到最低。 环境对接