首先我们要知道为什么要使用Memcache来减少数据库的请求次数:
1.关系型数据库本身就是个庞然大物,处理过程非常耗时(如解析SQL语句,事务处理等)。如果对关系型数据库进行高并发读写(每秒上万次的访问),那么它是无法承受的。
2.对于大型的SNS网站,每天有上千万次的数据产生(如twitter, 新浪微博)。对于关系型数据库,如果在一个有上亿条数据的数据表种查找某条记录,效率将非常低。
通过以下代码实现Memcache缓存数据库里的数据:
这是一个laravel5.7框架,首先我们要引用它的一个类:
use Memcache;
以下是具体代码实现
public function mem()
{
$mem=new Memcache(); //实例化这个memcache对象
if($mem->connect("127.0.0.1")) { //判断跟本机连接是否成功
if($mem->get('list')){ //检测有没有缓存过这个key
// echo '有';
$hq=$mem->get('list'); //把这个key对应的val取出
print_r($hq);
}else{ //如果没有的话
//echo '没有';
$list=DB::table('hy_user')->get(); //就把表里的数据取出来
$mem->add('list',$list,0); //添加这个key并且把表里数据设成它的val下次再执行在上面检测就有这个key,so就不用连接数据库了
$hq=$mem->get('list'); //把这个key对应的val取出
print_r($hq);
}
}else{
echo"连接Memcache服务器失败!";
}
}