Month: October 2015

PHP如何实现HTML页面静态化

前言: 随着网站的内容的增多和用户访问量的增多,无可避免的是网站加载会越来越慢,受限于带宽和服务器同一时间的请求次数的限制,我们往往需要在此时对我们的网站进行代码优化和服务器配置的优化。 一般情况下会从以下方面来做优化 动态页面静态化 优化数据库 使用负载均衡 使用缓存 使用CDN加速 现在很多网站在建设的时候都要进行静态化的处理,为什么网站要进行静态化处理呢?我们都知道纯静态网站是所有的网页都是独立的一个html页面,当我们访问的时候不需要经过数据的处理直接就能读取到文件,访问速度就可想而知了,而其对于搜索引擎而言也是非常友好的一个方式。 纯静态网站在网站中是怎么实现的? 纯静态的制作技术是需要先把网站的页面总… Read More

构建高并发高可用的电商平台架构实践

一、 设计理念 1.      空间换时间 1)      多级缓存,静态化 客户端页面缓存(http header中包含Expires/Cache of Control,last modified(304,server不返回body,客户端可以继续用cache,减少流量),ETag) 反向代理缓存 应用端的缓存(memcache) 内存数据库 Buffer、cache机制(数据库,中间件等) 2)      索引 哈希、B树、倒排、bitmap 哈希索引适合综合数组的寻址和链表的插入特性,可以实现数据的快速存取。 B树索引适合于查询为主导的场景,避免多次的IO,提高查询的效率。 倒排索引实现单词到文档映射关系的最佳实现方式和最有… Read More

PHP数组缓存:三种方式JSON、序列化和var_export的比较

使用PHP的站点系统,在面对大数据量的时候不得不引入缓存机制。有一种简单有效的办法是将PHP的对象缓存到文件里。下面我来对这3种缓存方法进行说明和比较。 第一种方法:JSON JSON缓存变量的方式主要是使用json_encode和json_decode两个php函数。json_encode可以将变量变成文本格式,这样就可以存到文件里。 使用样例如下: // Store cache file_put_contents($cachePath, json_encode($myDataArray)); // Retrieve cache $myDataArray = json_decode(file_get_contents(… Read More

大数据量的存储分表常见算法

当一个应用的数据量大的时候,我们用单表和单库来存储会严重影响操作速度,如mysql的myisam存储,我们经过测试,200w以下的时 候,mysql的访问速度都很快,但是如果超过200w以上的数据,他的访问速度会急剧下降,影响到我们webapp的访问速度,而且数据量太大的话,如 果用单表存储,就会使得系统相当的不稳定,mysql服务很容易挂掉。所以当数据量超过200w的时候,建议系统工程师还是考虑分表. 以下是几种常见的分表算法。   1.按自然时间来分表/分库; 如一个应用的数据在一年后数据量会达到200w左右,那么我们就可以考虑用一年的数据来做为一个表或者库来存储,例如,表名为app,那么2… Read More