解析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 相关文章推荐
dedecms模版制作使用方法
Apr 03 PHP
smarty中先strip_tags过滤html标签后truncate截取文章运用
Oct 25 PHP
php删除页面记录 同时刷新页面 删除条件用GET方式获得
Jan 10 PHP
php清除和销毁session的方法分析
Mar 19 PHP
PHP中生成UUID自定义函数分享
Jun 10 PHP
PHPStorm+XDebug进行调试图文教程
Jun 13 PHP
深入理解PHP的远程多会话调试
Sep 21 PHP
PHP PDOStatement::fetchObject讲解
Feb 01 PHP
在laravel5.2中实现点击用户头像更改头像的方法
Oct 14 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
Nov 23 PHP
PHP实现笛卡尔积算法的实例讲解
Dec 22 PHP
php中用unset销毁变量并释放内存
May 10 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
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
2013/06/05 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
PHP钩子与简单分发方式实例分析
2017/09/04 PHP
Laravel框架用户登陆身份验证实现方法详解
2017/09/14 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
2020/04/13 PHP
JavaScript字符串对象charAt方法入门实例(用于取得指定位置的字符)
2014/10/17 Javascript
JavaScript如何自定义trim方法
2015/07/28 Javascript
20分钟轻松创建自己的Bootstrap站点
2016/05/12 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
详解JavaScript模块化开发
2016/12/04 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
Vue动态组件实例解析
2017/08/20 Javascript
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
2018/08/01 Javascript
vue指令做滚动加载和监听等
2019/05/26 Javascript
[08:38]DOTA2-DPC中国联赛 正赛 VG vs Elephant 选手采访
2021/03/11 DOTA
Python实现将n个点均匀地分布在球面上的方法
2015/03/12 Python
Python实现中一次读取多个值的方法
2018/04/22 Python
Python3.5面向对象与继承图文实例详解
2019/04/24 Python
python批量处理txt文件的实例代码
2020/01/13 Python
用什么库写 Python 命令行程序(示例代码详解)
2020/02/20 Python
CSS3实现渐变背景兼容问题
2020/05/06 HTML / CSS
免费获得微软MCSD证书赶快行动吧!
2012/11/13 HTML / CSS
英国在线玫瑰专家:InterRose
2019/12/01 全球购物
平面设计岗位职责
2013/12/14 职场文书
机关搬迁方案
2014/05/18 职场文书
优秀大专毕业生求职信
2014/08/04 职场文书
副检察长四风问题对照检查材料思想汇报
2014/10/07 职场文书
灵山大佛导游词
2015/02/04 职场文书
信用卡工资证明范本
2015/06/19 职场文书
2019年自助餐厅创业计划书模板
2019/08/22 职场文书
PyQt5 QThread倒计时功能的实现代码
2021/04/02 Python