在PHP中使用memcache
数据库(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。(新浪的新闻频道)