700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > PHP 缓存 内存 PHP memcache 内存缓存 数据库查询 应用 高洛峰 细说PHP

PHP 缓存 内存 PHP memcache 内存缓存 数据库查询 应用 高洛峰 细说PHP

时间:2021-07-15 15:13:21

相关推荐

PHP 缓存 内存 PHP memcache 内存缓存 数据库查询 应用  高洛峰  细说PHP

PHP memcache在数据库查询中应用,减少连接数据库的次数,降低服务器的压力!/*

*memcache应用说明memorycache内存缓存

*工作原理

*服务器端口port11211

*MemCached存取键值对key=>value

*1.内网访问

*2.设置防火墙

*/

//创建memcache对象

$mem=newMemcache();

//连接memcache服务器

$host='localhost';

$port='11211';

$mem->connect($host,$port);

//$mem->addserver($host,$port);

//$mem->addserver('192.168.10.254',11211);//新增一台服务器的内存

$dsn='mysql:dbname=test;host=localhost';

$username='root';

$passwd='root';

$options=array(

PDO::ATTR_AUTOCOMMIT=>true,

PDO::ATTR_PERSISTENT=>true

);

//连接数据库

try{

//创建对象

$pdo=newPDO($dsn,$username,$passwd,$options);

//设置错误使用异常模式

$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

}catch(PDOException$e){

echo"数据库连接失败:".$e->getMessage();

exit;

}

$statement="select*fromuserswhereid>?andid

//键名用md5()加密后名字更规范防止查询语句信息泄漏

$key=md5($statement);

//直接从内存要数据

$data=$mem->get($key);

//判断是否存在$data,如果没有才需要连接数据库获取数据!数据直接从内存获取,实现缓存。

if(empty($data)){

try{

//给数据库管理系统,编译后等待没有执行

$pdostatement=$pdo->prepare($statement);

$pdostatement->execute(array(3,6));

//设置结果的模式

$pdostatement->setFetchMode(PDO::FETCH_NUM);

$data=$pdostatement->fetchAll(PDO::FETCH_ASSOC);

//保存在缓存中

$mem->set($key,$data,MEMCACHE_COMPRESSED,10);

echo'第一次数据库查询!

';

}catch(PDOException$e){

echo'错误的原因:'.$e->getMessage();

}

}

//按表格形式输出

echo'

foreach($dataas$value){

echo'

';

echo'

'.$value['id'].'';

echo'

'.$value['username'].'';

echo'

'.$value['password'].'';

echo'

'.$value['email'].'';

echo'

';

}

echo'

';

//关闭连接

$mem->close();

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。