在PHP中使用memcachephp
數據庫(select)讀出來的數據使用memcache。
在會話控制session中使用
<?php
$mem=new Memcache;
$mem->connect("localhost",11211);
$sql="select * from saisai";
$mysqli=new mysqli("192.168.211.128","root","","test");
$result=$mysqli->query($sql);
$data=array();
while($row=$result->fetch_assoc()){
$data[]=$row;
}
$result->free();
$mysqli->close();
echo '<pre>';
print_r($data);
echo '</pre>';
?>
<?php
$mem=new Memcache;
$mem->connect("localhost",11211);
$data=$mem->get("shops");
if(!$data){
$sql="select * from saisai";
$mysqli=new mysqli("192.168.211.128","root","","test");
$result=$mysqli->query($sql);
$data=array();
while($row=$result->fetch_assoc()){
$data[]=$row;
}
$result->free();
$mysqli->close();
$mem->set("shops",$data,MEMCACHE_COMPRESSED,3600);
echo $sql;
}
echo '<pre>';
print_r($data);
echo '</pre>';
$mem->close();
?>
使用memcache緩存數據庫內容,第一遍要查找數據庫,並輸出sql語句,之後就不用查找了。
memcache安全性:
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 //只
使用memcached 的因素:
--若是是一個小網站,pv值不大,就不考慮使用memcache了
--變化頻繁,查詢頻繁,可是不必定寫入數據庫(適合memcached)(用戶在線狀態.)
--變化頻繁, 一變化就要入庫[好比股票,金融.](不適合memcached)
--變化不頻繁,查詢頻繁,無論如不入庫,都比較適合memcache。(新浪的新聞頻道)