标签:style http color io os 使用 ar strong 文件
(本篇所述基于wamp集成环境而言,适合新手参考。当然,也欢迎大神们给予宝贵意见,谢谢!)
页面静态化,就是将php文件转换成html文件。当页面的数据要求的实时性不是很高的时候[换言之,数据的更新率不高时],使用页面静态化。
页面静态化可分为伪静态[URL地址重写]、真正的静态文件[由php产生]。
说明:伪静态化并不是真实意义上存在的,其意义在于地址栏的美化、便于seo收录[对搜索引擎友好],不能提高页面的响应速度,也无法减少数据库请求的压力。
页面静态化的意义在于提高页面的响应速度,减少数据库请求的压力!
★伪静态化的基本步骤
①开启Apache的URL重写模块,修改httpd.conf配置文件
LoadModule rewrite_module modules/mod_rewrite.so
AllowOverride None => AllowOverride All [共3个]
②重启Apache后,在项目根目录下创建文件.htaccess文件,该文件可以通过新建记事本然后另存。它的书写规则如下:
RewriteEngine On
RewriteRule list-(\d+).html list.php?page=$1 //传递参数型,如给list.php传递页码参数page。置于前面,匹配到的话则不往后查看规则
RewriteRule url.html url.php //静态化重写url规则
RewriteRule (\w+).html $1.php //批量伪静态化,非传递参数型
③文件间的跳转链接也需要改成url.html样式,否则就成不了真正的伪静态;分页中,需通过判断是否开启URL重写模块来改变链接的方式。
★真正的静态化步骤
①制作页面文件的缓存,提高页面的响应速度,减少数据库的查询 。但是,它的缺陷是访问硬盘里的文件,影响其输入输出[IO]的传输效率。
First,判断页面的缓存文件是否存在,若存在,直接访问缓存文件;若不存在,访问php文件并将访问的结果生成一个页面的缓存文件。如下为简单实现原理的例子》》
$cache = "./cache/test.html";
if(file_exits($cache)){
include $cache;
}else{
if(!file_exists("./cache/")){
mkdir("./cache/",0777,true);
}
Echo $str = file_get_contents("http://127.0.0.1/PhpTest/test.php"); //这里的url为Apache使用的绝对路径哦
file_put_contents($cache,$str);
}
Second,查看网页响应时间可在程序两端分别加上$start = microtime(true);$end = microtime(true);然后,($end - $start)即是响应请求时间。显然,使用缓存后,响应速度加快了很多倍!
The last,设置缓存的生命周期$cache_lifetime,便于数据更新。
补充说明:
文件创建时间函数filectime(file_url); //返回第一次创建(create)的时间,操作系统记录为节点
文件修改时间函数filemtime(file_url); //通过修改(make)时间可以判断缓存是否过期
文件访问时间函数fileatime(file_url);
★页面静态化之Memcache
Memcache与Memcached
memcache是danga的一个项目名称,是一个管理内存的C/S模式软件;它是一个高性能的分布式的内存对象缓存系统,通过内存维护一个巨大的hash表[key--value键值对],可存储各种数据[不建议大文件],大大提高读取数据。
memcached是memcache服务器端的主程序文件名[类似Apache的httpd和mysql的mysqld],以守护[任务管理器的进程]程序方式运行于一个或多个服务器中,随时接收客户端的连接和操作。
memcache默认端口:11211
使用memcache,提高页面的响应速度,使缓存响应速度更快,减少数据库的请求。它用于当数据被大量用户访问的时候、数据被大并发的用户访问时。
Memcached软件的安装
a.服务器端的安装
我们需要将memcached.exe文件拷贝到硬盘当中。
安装至系统服务
1.安装:f:/memcache/memcached.exe –d install
2.开启:memcached.exe –d start
3.停止:memcached –d stop
4.卸载:memcached –d uninstall
b.客户端的安装
使用telnet连接客户端,xp已默认安装telnet,win7、win8在控制面板的程序和功能的打开或关闭新的功能中选中安装telnet客户端
telnet localhost/127.0.0.1/www.***.com 11211[默认端口号,可以更改]
一些操作指令如下:
stats -- 查看服务器相关状态信息
stats items //遍历内存中所有数据。查看所有选项个数,获取标识位的值
显示数据如下:
STAT items:1【标识位】:number 1【标识位的个数】
STAT items:1:age 6
STAT items:1:evicted 0
STAT items:1:outofmemory 0
stats cachedump [items中标识位的值] [查看几条信息,为0时显示所有] //获取键名
add [键名] [标志位,通常为int型] [生存周期,单位s] [存入值的长度] =>value[受长度的影响] //添加数据,可以添加多个,但不支持覆盖
set name[键名] 1[标志位,通常为int型] 60[生存周期,单位s] 10[存入值的长度] =>value[受长度的影响] //添加和修改数据,比较常用
get name[键名] //获取,查询数据
delete name[键名] //删除数据
flush_all //删除所有数据
quit //退出客户端
php作为memcached的客户端[使用memcache扩展类]
安装php的memcache扩展,对应版本的php_memcache.dll => php安装路径下的ext目录下,修改php.ini => 添加extension=php_memcache.dll => 重启Apache
php操作memcache的两套扩展库:memcache库和memcached库
memcache库既可以使用面向对象(OO),也可以使用面向过程,它是php内置的一套库
memcached库基于libmemcached,只支持面向对象(OO),功能更加强大!方法更加丰富,效率较memcache高!
★memcache和memcached的区别:
①memcache是项目名称,memcached是服务器软件名称
②memcached是软件memcached的守护进程名称
③memcache是php内置的一套扩展库,memcached是基于libmemcached的一套第三方法扩展库
④memcache库既支持面向对象的写法,也支持面向过程的写法,而memcached只支持面向对象的写法
⑤memcached功能更加强大!方法更加丰富,效率较memcache高!
PHP操作memcache
$mem = new memcache(); //实例化memcache对象。对于对象而言,赋值表示引用赋值...clone
$conn = $mem -> connect("localhost",11211); //连接memcache服务器,返回bool类型
$mem ->addserver("ip/localhost",port); //memcache分布式,其实mysql和apache也可以分布式 -- 进阶:负载均衡、反向代理、设备监控、心跳感应、主从复制
$mem -> getstats(); //操作数据之得到服务器相关状态信息,返回array
$mem -> add/set("key_name","value_name",flag如1或MEMCACHE_COMPRESSED,timeout如3600); //添加/更新数据,这里php会获取长度,不写。value_name可以是array、object
$mem -> get("value_name"); //获取、查询数据
$mem -> delete("value_name"); //删除数据
$mem -> close(); //关闭连接
$mem ->getExtendedStats("items");//遍历内存中所有键的值,返回array。"items" <=> stats items
$mem ->getextendedstats("cachedump",$i,0);
值得说明的是,timeout时间直接写秒数的写法最大为3600*24*30。写时间戳的写法time() + 3600*24*31 可实现存储31天以上的时间!
memcache用于静态化,存储数据库操作产生的数据到memcache。在timeout时间内减少数据库的连接压力!
集体宿舍的黑灯瞎火,就先到这吧,碎觉了 。。。
标签:style http color io os 使用 ar strong 文件
原文地址:http://www.cnblogs.com/phpchromer2014/p/php_memcache.html