您的位置:首页 > 数据库 > Memcache

浅谈php的缓存机制之memcache

2015-01-11 21:14 316 查看
        

         访问量较大的网站,如果每个人浏览就去数据库里查询,数据库的压力是非常大的。那么有什么方法可以减轻数据库的压力呢,可不可以把从数据库中查询到的结构管保存起来,当再次访问的时候,直接通过已经保存起来的结果直接查询呢?结果是肯定的,memcache缓存机制就做到了。

        首先说下memcache的安装,安装一定要注意自己的系统,php的版本。把 php_memcache.dll 放到php/ext 目录下,然后在 php 目录下的 php.ini 增加一段内容extension=php_memcache.dll 加完之后,重启 apache。输入cmd,执行两个命令memcache.exe -p install(安装),memcache.exe -p start,之后使用netstat -an 如果看到11211端口在监听,说明启动成功。phpinfo()一下看看memcache是否开启。

        $mem = new Memcache; //实例化一个对象
$mem->connect("localhost", 11211); //连接(切记11211,不然会报错的)

$mem->set($key,$value,0,60);//参数说明:1键2值3是否压缩4过期时间

$val=$mem->get($key);//$val即为set里面的value

大家是不是想看看与数据库关联的例子了,我也直接上代码:

<?php 

$host = 'localhost'; 

$user = 'root'; 

$passwd = ''; 

$db = 'test'; 

$conn = mysql_connect($host,$user,$passwd); 

mysql_select_db($db,$conn); 

$sql = 'select * from t order by id desc'; 

$result = mysql_query($sql,$conn); 

while ($row = mysql_fetch_array($result,MYSQL_ASSOC)){ 

$test_key[] = $row; 

}

$sql = md5($sql); 

$mem = new Memcache; 

$mem->connect("localhost", 11211); 

$mem->set($sql,$test_key, MEMCACHE_COMPRESSED, 600);

print_r($mem->get($sql)); 

?> 

不懂的可以问我。

qq:274501366
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: