解析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 相关文章推荐
使用Limit参数优化MySQL查询的方法
Nov 12 PHP
Ha0k 0.3 PHP 网页木马修改版
Oct 11 PHP
PHP数组操作汇总 php数组的使用技巧
Jul 17 PHP
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
Jun 01 PHP
采用ThinkPHP中F方法实现快速缓存实例
Jun 13 PHP
php使用explode()函数将字符串拆分成数组的方法
Feb 17 PHP
php与Mysql的一些简单的操作
Feb 26 PHP
非常全面的php日期时间运算汇总
Nov 04 PHP
CI框架集成Smarty的方法分析
May 17 PHP
PHP与jquery实时显示网站在线人数实例详解
Dec 02 PHP
PHP给前端返回一个JSON对象的实例讲解
May 31 PHP
Django 标签筛选的实现代码(一对多、多对多)
Sep 05 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
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
一个符号插入器 中用到的js代码
2007/09/04 Javascript
js实现兼容IE6与IE7的DIV高度
2010/05/13 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
javascript数据结构中栈的应用之符号平衡问题
2017/04/11 Javascript
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
Angular6中使用Swiper的方法示例
2018/07/09 Javascript
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
angular ng-model 无法获取值的处理方法
2018/10/02 Javascript
微信小程序实现登录注册tab切换效果
2020/12/29 Javascript
基于JavaScript实现每日签到打卡轨迹功能
2018/11/29 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
2019/04/24 Javascript
jstree中的checkbox默认选中和隐藏示例代码
2019/12/29 Javascript
Vue开发中常见的套路和技巧总结
2020/11/24 Vue.js
[33:39]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第二局
2016/02/27 DOTA
Python实现模拟登录及表单提交的方法
2015/07/25 Python
python生成验证码图片代码分享
2016/01/28 Python
numpy中索引和切片详解
2017/12/15 Python
python爬虫爬取笔趣网小说网站过程图解
2019/11/18 Python
Python通过2种方法输出带颜色字体
2020/03/02 Python
在echarts中图例legend和坐标系grid实现左右布局实例
2020/05/16 Python
爱尔兰电脑、家电和家具购物网站:Buy It Direct
2019/07/09 全球购物
单位刻章介绍信范文
2014/01/11 职场文书
宣传保护环境的公益广告词
2014/03/13 职场文书
承诺书怎么写
2014/03/26 职场文书
机关办公室岗位职责
2014/04/16 职场文书
感情真挚的毕业生求职信
2014/07/19 职场文书
党员民主评议总结
2014/10/20 职场文书
2015年大学迎新工作总结
2015/07/16 职场文书
2016年国庆节新闻稿范文
2015/11/25 职场文书
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript
Win11应用商店打开闪退怎么解决? win11应用商店打不开的多种解决办法
2022/04/05 数码科技
画错魏国疆域啦!《派对咖孔明》动画因作画失误于官网致歉
2022/04/07 日漫