解析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对象类型判断
Aug 27 PHP
PHP入门学习笔记之一
Oct 12 PHP
PHP爆绝对路径方法收集整理
Sep 17 PHP
Drupal7 form表单二次开发要点与实例
Mar 02 PHP
Destoon实现多表查询示例
Aug 21 PHP
thinkPHP导出csv文件及用表格输出excel的方法
Dec 30 PHP
PHP的几个常用加密函数
Feb 03 PHP
php轻松实现文件上传功能
Mar 03 PHP
postfixadmin忘记密码后的修改密码方法详解
Jul 20 PHP
常用PHP数组排序函数归纳
Aug 08 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
May 02 PHP
php从数据库读取数据,并以json格式返回数据的方法
Aug 21 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桌面中心(一) 创建数据库
2007/03/11 PHP
关于PHP文件的自动运行方法分析
2016/05/13 PHP
分析PHP中单双引号的误区和双引号小隐患
2016/07/19 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
2018/05/24 PHP
php慢查询日志和错误日志使用详解
2021/02/27 PHP
实现png图片和png背景透明(支持多浏览器)的方法
2009/09/08 Javascript
jQuery里filter()函数与find()函数用法分析
2015/06/24 Javascript
分享我对JS插件开发的一些感想和心得
2016/02/04 Javascript
JS封装的自动创建表格的实现代码
2016/06/15 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
js返回顶部实例分享
2016/12/21 Javascript
JS仿JQuery选择器功能
2017/03/08 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
Vue工程模板文件 webpack打包配置方法
2017/12/26 Javascript
Vue单页面应用保证F5强刷不清空数据的解决方案
2018/01/31 Javascript
详解微信JS-SDK选择图片遇到的坑
2018/08/15 Javascript
详解vue中使用protobuf踩坑记
2019/05/07 Javascript
javascript利用canvas实现鼠标拖拽功能
2020/07/23 Javascript
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
python的常见命令注入威胁
2013/02/18 Python
sqlalchemy对象转dict的示例
2014/04/22 Python
Python中为什么要用self探讨
2015/04/14 Python
使用Python+wxpy 找出微信里把你删除的好友实例
2019/02/21 Python
Pandas缺失值2种处理方式代码实例
2020/06/13 Python
路易威登和香奈儿手袋:LuxeDH
2017/01/12 全球购物
Stubhub英国:购买体育、演唱会和剧院门票
2018/06/10 全球购物
Boden英国官网:英国知名原创时装品牌
2018/11/06 全球购物
求两个数的乘积和商数,该作用由宏定义来实现
2013/03/13 面试题
读书心得体会
2013/12/28 职场文书
应届毕业生个人求职信范文
2014/01/29 职场文书
小学新教师培训方案
2014/02/03 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
初一英语教学反思
2016/02/15 职场文书
pytorch--之halfTensor的使用详解
2021/05/24 Python