PHP使用MemCache加速MySql速度,提高数据库负载

ef651a799d00af64031a584bdab213b3

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。

————摘自AMH面板简介

博客站的服务器用的AMH的面板没有自己编译PHP之类 应用中心直接安装了MemCache服务器

如果用自己编译 http://memcached.org/ 去官网下载安装就可以了,这里就不多说了~

安装完后,确保PHP服务器支持MemCache拓展,如果不支持可以到下面两个地址安装依赖库

https://launchpad.net/libmemcached/1.0/1.0.4/+download/libmemcached-1.0.4.tar.gz

http://pecl.php.net/get/memcached-2.0.1.tgz

安装完后phpinfo()查看是否支持MemCache功能,如果支持就可以进行下一步了

MemCache不修改的话应该是用默认口11211

首先先测试下能不能正常用

$mem = new Memcache;
$mem->connect("127.0.0.1", 11211);
$mem->set('test', 'ok', 0,60);
$mem->get('test');

php执行上面代码,如果输出ok则程序正常,可以使用。

我的想法大致是这样的,首先判断一下 当前数据是否在MemCache数据库有存储,如果有直接输出,不存在则调用mysql数据并存储输出。

这样大致就可以实现数据的储存了,我ihxvip就是这样实现的,下面给一个类似查询的栗子吧,使用mysqli

首先第一步,创建

$mem = new Memcache;
$mem->connect("127.0.0.1", 11211);

然后直接if数据是否存在

if($mem->get($data) ==''){

等于空则开始使用数据库,并且存储进MemCache

$db = new mysqli(sqlhost,sqluser,sqlpass,sqldata);
$db->query("set names 'UTF8'");
$rows = $db->query("SELECT * FROM test where id = data");
if($row = $rows->fetch_array()){
$mem->set($data, $row, 0, 300);
}

处理好后,差不多就行了,反正这玩意就是放在程序头运行,需要数据处,直接使用get获取$mem->get($data) 就可以了

如果想要方便点,你可以放进一个函数里,反正大体我就是这样处理的,使用请自行修改,这里不过思路而已

不过用了memcache速度真的没的说,处理速度比mysql 6多了

转载于:https://www.cnblogs.com/fffr/p/6556513.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值