解析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开发模式(简写版)
Mar 15 PHP
php正则过滤html标签、空格、换行符的代码(附说明)
Oct 25 PHP
深入phpMyAdmin的安装与配置的详细步骤
May 07 PHP
PHP对表单提交特殊字符的过滤和处理方法汇总
Feb 18 PHP
PHP图片处理之图片旋转和图片翻转实例
Nov 19 PHP
php创建、获取cookie及基础要点分析
Jan 26 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
Apr 08 PHP
作为PHP程序员你要知道的另外一种日志
Jul 30 PHP
php提供实现反射的方法和实例代码
Sep 17 PHP
Laravel数据库读写分离配置的方法
Oct 13 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
Oct 18 PHP
php实现根据身份证获取精准年龄
Feb 26 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中关于普通表单多文件上传的处理方法
2011/03/25 PHP
PHP内核探索:哈希表碰撞攻击原理
2015/07/31 PHP
php实现简单的权限管理的示例代码
2017/08/25 PHP
CentOS7编译安装php7.1的教程详解
2019/04/18 PHP
基于jQuery实现的水平和垂直居中的div窗口
2011/08/08 Javascript
实现点击列表弹出列表索引的两种方式
2013/03/08 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
2014/05/04 Javascript
简介可以自动完成UI的AngularJS工具angular-smarty
2015/06/23 Javascript
drag-and-drop实现图片浏览器预览
2015/08/06 Javascript
基于jQuery实现以手风琴方式展开和折叠导航菜单
2016/01/28 Javascript
javascript每日必学之基础入门
2016/02/16 Javascript
js获取Get值的方法
2016/09/29 Javascript
JavaScript运动框架 多物体任意值运动(三)
2017/05/17 Javascript
JS实现留言板功能
2017/06/17 Javascript
Vue自定义指令使用方法详解
2017/08/21 Javascript
详解mpvue中小程序自定义导航组件开发指南
2019/02/11 Javascript
详解Nodejs get获取远程服务器接口数据
2019/03/26 NodeJs
使用Phantomjs和Node完成网页的截屏快照的方法
2019/07/16 Javascript
利用Python画ROC曲线和AUC值计算
2016/09/19 Python
Python中字典(dict)合并的四种方法总结
2017/08/10 Python
导入tensorflow时报错:cannot import name 'abs'的解决
2019/10/10 Python
Python测试线程应用程序过程解析
2019/12/31 Python
python高阶函数map()和reduce()实例解析
2020/03/16 Python
使用Python对Dicom文件进行读取与写入的实现
2020/04/20 Python
基于Python绘制个人足迹地图
2020/06/01 Python
Jupyter Notebook 安装配置与使用详解
2021/01/06 Python
计算机专业应届毕业生自荐信
2013/09/26 职场文书
单位承诺书格式
2014/05/21 职场文书
法人委托书的范本格式
2014/09/11 职场文书
财会专业大学生求职信
2014/09/26 职场文书
开展党的群众路线教育实践活动总结报告
2014/10/31 职场文书
2014年个人技术工作总结
2014/12/08 职场文书
毕业论文答辩开场白和结束语
2015/05/27 职场文书
刮痧观后感
2015/06/05 职场文书
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android
MySQL数据库事务的四大特性
2022/04/20 MySQL