解析php中memcache的应用


Posted in PHP onJune 18, 2013

所需环境:
php 5.3.3
apache 2.2.7
mysql 5.5.8
相关文档下载:点击下载
解压Memcached_1.2.5文档,cmd下执行memcached.exe -d -install
将php5.3_vc6_memcachedll文档解压,将php_memcache.dll文件复制到php安装目录的ext文件目录中。
然后在php.ini 当中填上这句话:extension="php_memcache.dll"
在phpinfo()下查看,是否引用了memcache扩展。

测试代码:

<?php
//连接
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211);
//保存数据
$mem->set('key1', 'This is first value', 0, 60);
$val = $mem->get('key1');
echo "Get key1 value: " . $val ."<br />";
//替换数据
$mem->replace('key1', 'This is replace value', 0, 60);
$val = $mem->get('key1');
echo "Get key1 value: " . $val . "<br />";
//保存数组
$arr = array('aaa', 'bbb', 'ccc', 'ddd');
$mem->set('key2', $arr, 0, 60);
$val2 = $mem->get('key2');
echo "Get key2 value: ";
print_r($val2);
echo "<br />";
//删除数据
$mem->delete('key1');
$val = $mem->get('key1');
echo "Get key1 value: " . $val . "<br />";
//清除所有数据
$mem->flush();
$val2 = $mem->get('key2');
echo "Get key2 value: ";
print_r($val2);
echo "<br />";
//关闭连接
$mem->close();
$memcachehost = '192.168.10.1';
$memcacheport = 11211;
$memcachelife = 60;
$memcache = new Memcache;
$memcache->connect($memcachehost,$memcacheport) or die ("Could not connect");
$query="select * from user limit 10";
$key=md5($query);
if(!$memcache->get($key))
{
        $conn=mysql_connect("192.168.30.1","root","passwd");
        mysql_select_db(users);
        $result=mysql_query($query);
        while ($row=mysql_fetch_assoc($result))
        {
            $arr[]=$row;
        }
        $f = 'db';
        $memcache->add($key,serialize($arr),0,30);
        $data = $arr ;
}
else{
        $f = 'mem';
    $data_mem=$memcache->get($key);
    $data = unserialize($data_mem);
}
echo $f;
echo "";
//print_r($data);
foreach($data as $a)
{
        echo $a[user_id]._.$a[email];
        echo "";
}
?>

新闻系统的应用:
//==============memcache
$memcachehost = '127.0.0.1';
$memcacheport = 11211;
$memcachelife = 60;
$memcache = new Memcache;
$memcache->connect($memcachehost,$memcacheport) or die ("Could not connect");
//==============新闻
 $sql="SELECT id,title,left(title,16) as biaoti,date_time FROM `p_newsbase` where shenhe='1' order by id DESC limit 7 ";
 $query=$db->query($sql);
 $key=md5($query);
 while($row_news=$db->fetch_array($query)){
  $str=$row_news['biaoti'].$db->time_out($row_news['date_time']);
  $sm_news[]=array("name"=>$str,"title"=>$row_news['title'],"id"=>$row_news['id'],"date_time"=>$row_news['date_time']);
 }
 if(!$memcache->get($key)){
  $memcache->add($key,serialize($sm_news),0,$memcachelife);
 }else{
  $data_mem=$memcache->get($key);
    $sm_news = unserialize($data_mem);
 }
 $smarty->assign("sm_news",$sm_news);

PHP 相关文章推荐
PHP生成HTML静态页面实例代码
Aug 31 PHP
php tp验证表单与自动填充函数代码
Feb 22 PHP
php调用dll的实例操作动画与代码分享
Aug 14 PHP
php对mongodb的扩展(初出茅庐)
Nov 11 PHP
深入php list()函数的详解
Jun 05 PHP
eAccelerator的安装与使用详解
Jun 13 PHP
PHP判断远程图片或文件是否存在的实现代码
Feb 20 PHP
PHP include任意文件或URL介绍
Apr 29 PHP
php实现的常见排序算法汇总
Sep 08 PHP
PHP与MYSQL中UTF8 中文排序示例代码
Oct 23 PHP
php求斐波那契数的两种实现方式【递归与递推】
Sep 09 PHP
PHP实现文件上传后台处理脚本
Mar 04 PHP
PHP实现的封装验证码类详解
Jun 18 #PHP
php empty()与isset()区别的详细介绍
Jun 17 #PHP
php include和require的区别深入解析
Jun 17 #PHP
浅析php header 跳转
Jun 17 #PHP
解析php中heredoc的使用方法
Jun 17 #PHP
深入PHP5中的魔术方法详解
Jun 17 #PHP
php.ini 配置文件的深入解析
Jun 17 #PHP
You might like
德劲1107的电路分析与打磨
2021/03/02 无线电
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
laravel执行php artisan migrate报错的解决方法
2019/10/09 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
枚举JavaScript对象的函数
2006/12/22 Javascript
JS继承--原型链继承和类式继承
2013/04/08 Javascript
多个datatable共存造成多个表格的checkbox都被选中
2013/07/11 Javascript
教你在heroku云平台上部署Node.js应用
2014/07/30 Javascript
一个字符串反转函数可实现字符串倒序
2014/09/15 Javascript
jQuery中mouseover事件用法实例
2014/12/26 Javascript
使用AngularJS和PHP的Laravel实现单页评论的方法
2015/06/19 Javascript
jQuery插件开发汇总
2016/05/15 Javascript
JavaScript设计模式开发中组合模式的使用教程
2016/05/18 Javascript
js事件驱动机制 浏览器兼容处理方法
2016/07/23 Javascript
Bootstrap模态框禁用空白处点击关闭
2016/10/20 Javascript
ES6教程之for循环和Map,Set用法分析
2017/04/10 Javascript
Angularjs 事件指令详细整理
2017/07/27 Javascript
JS中用EL表达式获取上下文参数值的方法
2018/03/28 Javascript
JavaScript 点击触发复制功能实例详解
2018/11/02 Javascript
关于node-bindings无法在Electron中使用的解决办法
2018/12/18 Javascript
jquery实现动态改变css样式的方法分析
2019/05/27 jQuery
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
vue实现拖拽进度条
2021/03/01 Vue.js
python并发编程之多进程、多线程、异步和协程详解
2016/10/28 Python
python编程嵌套函数实例代码
2018/02/11 Python
python读取有密码的zip压缩文件实例
2019/02/08 Python
python列表推导式入门学习解析
2019/12/02 Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
2020/03/06 Python
python中线程和进程有何区别
2020/06/17 Python
关于打架的检讨书
2014/01/17 职场文书
党委书记个人检查对照材料思想汇报
2014/10/11 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
民主评议教师党员自我评价
2015/03/04 职场文书
Python matplotlib 利用随机函数生成变化图形
2022/04/26 Python
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android