1:缓存技术优点
缓存技术就是避免从数据库中读取数据,可以大大减轻服务器的负载。
2:缓存原理
缓存实现的基本原理是将数据库查询结果以字符串序列化形式保存到磁盘文件中,打开时再反序列化,这样的效率会高于Mysql 数据库查询,特别时夺标连接查询时会特别明显。
3:什么样的数据适合缓存
(1)只缓存很少变化的数据
(2)缓存和安全性
(3)良好的缓存系统设计
(4)备份与持久化
(5)确定缓存过期时间
(6)基于文件的缓存
4:页面静态化
(1)静态化的优势
加载快,容易编写,服务器负载小,带宽成本降低
(2)静态化代码
// 开始缓冲区
ob_start();
$cachefile = "cache/static.html";
$cachetime = 10* 30;
if(file_exists($cachefile)&&time()-$cachetime < filetime($cachefile)){
include($cachefile);
echo "\n";
exit();
}
echo "";
$fp = fopen($cachefile, "w");
fwrite($fp, ob_get_contents());
fclose($fp);
// 关闭缓冲区
ob_end_flush();
?>
5 :OpCode缓存
php执行流程: PHP脚本编译 => 执行 OpCode => 发送 HTML 到浏览器
6:OpCode 缓存管理工具
主流的OpCode 缓存管理工具主要有 APC,xCache,eAccelerator 及 ionCube PHP Accelerator,他们可以将 PHP 编译的OpCode 中间码保存到缓存中
6-1:APC ,eAccelerator 和 XCache 三者的比较
APC,eAccelerator 和 XCache 都是非常有用也是非常类似的工具,每个都提供缓存性能优化和管理的功能。APC 和 XCache 是开放源代码的项目,用户可以在源代码上进行二次开发,开发自定义的函数。eAccelerator 的开源相对严格,但它是一个相对活跃的项目。
7:用户级别的缓存
8:使用 deflate 压缩页面
向客户端发送 HTML 之前还可增加一部优化,那就是压缩功能。HTTP 协议允许压缩传输数据,压缩可使 Web 应用提速并节省带宽。
9:memcache
memcached 客户端分布式机构与算法支持
分布算法目前有两种, 取模算法 和 一致性算法(hash算法)
memchahed 的技术限制
① memchched 中可以保存的 item 数据量是没有限制的,只要内存足够
② memchched 单进程最大使用内存是 2G,要使用更多内存,可以分多个端口开启多个memchched 进程
③ 最大 30 天的数据过期时间,设置为永久的也会在这个时间过期,由常量 REALTIME_MAXDELEA 60*60*24*30 控制
④ 单个 item 最大数据是 1MB,超过 1MB 数据不予存储,由常量 POWER_BLOCK 1048576 进行控制,它是默认的 slab 大小
⑤ 最大同时连接数是 200
9-4: memchched 的缓存类型
9-5 :使用 memchched 做分布式 Session
三种方式实现 session 存入 memchche 中
①:修改 php.ini 配置文件的代码
session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211"
②:修改网站目录下的 .htaccess 文件
php_value session.save_handler "memcache
php_value session.save_path "tcp://127.0.0.1:11211"
③:PHP 脚本中写入
ini_set("session.save_handler", "memcache");
ini_set("session.save_path", "tcp://127.0.0.1:11211" )
";
echo $_SESSION['add_test'];
echo "
";
echo session_id();
$memchche = memcache_connect("localhost", 11211);
var_dump($memchche->get(session_id()));
string(37) "memchched_test|i:1111545454;add_test|i:1111125455"
?>