站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
▼
建站程序
开发
服务器
办公软件
开发教程
▼
服务器教程
软件使用教程
运营教程
热门电子书
▼
CSS教程
WordPress教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
热点词条
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
Ubuntu/Ubuntu+Apache+PHP+MySQL+Memcached
”(章节)
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
==将数据缓存在memcache中== 以下的实例中引用了上面的数据库: <pre>[codesyntax lang="php"] <?php # Connect to memcache: global $memcache; $memcache = new Memcache; $memcache->connect('127.0.0.1', 11211) or die ("Could not connect"); $version = $memcache->getVersion(); echo "Server's version: ".$version; echo "<br>"; //下面两个函数首先都会判断是否有使用memcache,如果有使用,就会调用memcached的set/get命令来保存和获取数据 //否则简单地返回false # Gets key / value pair into memcache … called by mysql_query_cache() function getCache($key) { global $memcache; return ($memcache) ? $memcache->get($key) : false; } # Puts key / value pair into memcache … called by mysql_query_cache() function setCache($key, $object, $timeout = 60) { global $memcache; return ($memcache) ? $memcache->set($key,$object,MEMCACHE_COMPRESSED,$timeout) : false; } # Caching version of mysql_query() function mysql_query_cache($sql, $linkIdentifier = false,$timeout = 60) { //首先调用上面的getCache函数,如果返回值不为false的话,就说明是从memcached服务器获取的数据 //如果返回false,此时就需要直接从数据库中获取数据了。 //需要注意的是这里使用操作的命令加上sql语句的md5码作为一个特定的key,可能大家觉得使用数据项的 //名称作为key会比较自然一点。运行memcached加上"-vv"参数,并且不作为daemon运行的话,可以看见 //memcached处理时输出的相关信息 if (!($cache = getCache(md5("mysql_query" . $sql)))) { $cache = false; $r = ($linkIdentifier !== false) ? mysql_query($sql,$linkIdentifier) : mysql_query($sql); //读取数据库,并将结果放入$cache数组中 if (is_resource($r) && (($rows = mysql_num_rows($r)) != 0)) { for ($i=0;$i<$rows;$i++) { $fields = mysql_num_fields($r); $row = mysql_fetch_array($r); for ($j=0;$j<$fields;$j++) { if ($i == 0) { $columns[$j] = mysql_field_name($r,$j); } $cache[$i][$columns[$j]] = $row[$j]; } } //将数据放入memcached服务器中,如果memcached服务器没有开的话,此语句什么也不会做 //如果开启了服务器的话,数据将会被缓存到memcached服务器中 if (!setCache(md5("mysql_query" . $sql), $cache, $timeout)) { # If we get here, there isn’t a memcache daemon running or responding } } } return $cache; } ?> <?php $username='root'; //输入正确的用户名和密码 $passwd='dandan'; //连接数据库 $link_mess=mysql_connect('localhost', $username, $passwd); //显示数据库连接的返回信息 if (!$link_mess){ echo "failed to connect the server "; echo "<br>"; exit(); } else { echo "connect the server successfully "; echo "<br>"; } //选择数据库 mysql_select_db("test", $link_mess); $sql = "select * from students;"; //这里是没有使用memcached时的操作,将其注释掉了,它运行不会有问题的 # Before: [without memcache] /*$rSlowQuery = mysql_query($sql); $row=mysql_fetch_row($rSlowQuery); echo "No: "; echo $row[0]; echo "<br>"; echo "Name: " ; echo $row[2]; echo "<br>"; echo "Age: "; echo $row[1]; echo "<br>";*/ //这里是使用memcached时的操作 # After: [with memcache] $rSlowQuery = mysql_query_cache($sql); # $rSlowQuery is an array $rows = count($rSlowQuery); for ($i=0; $i<$rows; $i++) { $stu_no = $rSlowQuery[$i]["stu_no"]; $stu_name = $rSlowQuery[$i]["stu_name"]; $stu_age = intval($rSlowQuery[$i]["stu_age"]); echo "No: "; echo $stu_no; echo "<br>"; echo "Name: " ; echo $stu_name; echo "<br>"; echo "Age: "; echo $stu_age; echo "<br>"; } ?> [/codesyntax]</pre> memcached服务器输出以下信息: <10 version >10 VERSION 1.2.8 <10 get a72ce670d58c49583ae9817a40dabda7 >10 sending key a72ce670d58c49583ae9817a40dabda7 >10 END 浏览器显示如下信息: Server’s version: 1.2.8 connect the server successfully No: 1000 Name: ecy fu Age: 24 到这里,工作基本上都完成了!
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)