访问量较大的网站,如果每个人浏览就去数据库里查询,数据库的压力是非常大的。那么有什么方法可以减轻数据库的压力呢,可不可以把从数据库中查询到的结构管保存起来,当再次访问的时候,直接通过已经保存起来的结果直接查询呢?结果是肯定的,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
大家是不是想看看与数据库关联的例子了,我也直接上代码:
$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