PHP memcache 内存缓存 数据库查询 应用 高洛峰 细说PHP
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP memcache 内存缓存 数据库查询 应用 高洛峰 细说PHP相关的知识,希望对你有一定的参考价值。
php memcache在数据库查询中应用,减少连接数据库的次数,降低服务器的压力!
/* * memcache应用说明 memory cache 内存缓存 * 工作原理 * 服务器端口port 11211 * MemCached 存取键值对key => value * 1.内网访问 * 2.设置防火墙 */ //创建memcache对象 $mem = new Memcache(); //连接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 = new PDO($dsn, $username, $passwd, $options); //设置错误使用异常模式 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); }catch(PDOException $e){ echo "数据库连接失败:".$e->getMessage(); exit; } $statement = "select * from users where id > ? and id < ?"; //键名用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 ‘第一次数据库查询!<br/>‘; }catch (PDOException $e){ echo ‘错误的原因:‘.$e->getMessage(); } } //按表格形式输出 echo ‘<table border="1" width="800" align="center">‘; foreach ($data as $value){ echo ‘<tr>‘; echo ‘<td>‘.$value[‘id‘].‘</td>‘; echo ‘<td>‘.$value[‘username‘].‘</td>‘; echo ‘<td>‘.$value[‘password‘].‘</td>‘; echo ‘<td>‘.$value[‘email‘].‘</td>‘; echo ‘</tr>‘; } echo ‘</table>‘; //关闭连接 $mem->close();
本文出自 “津沙港湾” 博客,请务必保留此出处http://11410485.blog.51cto.com/11400485/1842668
以上是关于PHP memcache 内存缓存 数据库查询 应用 高洛峰 细说PHP的主要内容,如果未能解决你的问题,请参考以下文章
memcache缓存服务器(Nginx+PHP+memcache+MySQL)
图文并茂超详细搭建memcache缓存服务器(nginx+php+memcache+mysql)
安装memcached服务器和PHP中添加memcache拓展模块