天天看點

網站提速-緩存技術(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