天天看点

网站提速-缓存技术(5)

 <b>在</b><b>PHP</b><b>中使用</b><b>memcache</b>

数据库(select)读出来的数据使用memcache。

在会话控制session中使用

<a href="http://blog.51cto.com/attachment/201210/011530165.gif" target="_blank"></a>

&lt;?php

$mem=new Memcache;

$mem-&gt;connect("localhost",11211);

$sql="select * from saisai";

$mysqli=new mysqli("192.168.211.128","root","","test");

$result=$mysqli-&gt;query($sql);

$data=array();

while($row=$result-&gt;fetch_assoc()){

$data[]=$row;

}

$result-&gt;free();

$mysqli-&gt;close();

echo '&lt;pre&gt;';

print_r($data);

echo '&lt;/pre&gt;';

?&gt;

<a href="http://blog.51cto.com/attachment/201210/011539882.gif" target="_blank"></a>

$data=$mem-&gt;get("shops");

if(!$data){

$mem-&gt;set("shops",$data,MEMCACHE_COMPRESSED,3600);

echo $sql;

$mem-&gt;close();

使用memcache缓存数据库内容,第一遍要查找数据库,并输出sql语句,以后就不用查找了。

<a href="http://blog.51cto.com/attachment/201210/011548219.gif" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201210/011558212.gif" target="_blank"></a>

<b>memcache</b><b>安全性:</b><b></b>

<b></b>

1、内网设置memcache:只允许211.1访问

Memcache -d -u root -了192.168.211.1 -p 11211

2、使用防火墙:允许211的访问

Iptables -A input -p tcp -s 192.168..211.1 --dport 11211 -j ACCEPT //只

<b>使用</b><b>memcached </b><b>的因素</b><b>:</b>

--如果是一个小网站,pv值不大,就不考虑使用memcache了

--变化频繁,查询频繁,但是不一定写入数据库(适合memcached)(用户在线状态.)

--变化频繁, 一变化就要入库[比如股票,金融.](不适合memcached)

--变化不频繁,查询频繁,不管如不入库,都比较适合memcache。(新浪的新闻频道)

本文转自zsaisai 51CTO博客,原文链接:http://blog.51cto.com/3402313/1032812