解析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安全防范技巧分享
Nov 03 PHP
百度站点地图(百度sitemap)生成方法分享
Jan 09 PHP
PHP跨平台获取服务器IP地址自定义函数分享
Dec 29 PHP
PHP实现阳历到农历转换的类实例
Mar 07 PHP
PHP实现从远程下载文件的方法
Mar 12 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
Jul 13 PHP
PHP利用Socket获取网站的SSL证书与公钥
Jun 18 PHP
php实现的错误处理封装类实例
Jun 20 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
Sep 16 PHP
Laravel创建数据库表结构的例子
Oct 09 PHP
YII2框架中actions的作用与使用方法示例
Mar 13 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
Apr 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/07/17 PHP
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
easyui的tabs update正确用法分享
2014/03/21 PHP
Yii2如何批量添加数据
2016/05/17 PHP
PHP实现图片批量打包下载功能
2017/03/01 PHP
PHP二维索引数组的遍历实例分析【2种方式】
2019/06/24 PHP
js中apply方法的使用详细解析
2013/11/04 Javascript
浅析Cookie中的Path与domain
2013/12/18 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
JavaScript实现同时调用多个函数的方法
2015/11/09 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
微信小程序 location API实例详解
2016/10/02 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
2016/10/26 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
node.js中的事件处理机制详解
2016/11/26 Javascript
Bootstrap路径导航与分页学习使用
2017/02/08 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图和饼图的组合图效果示例【附demo源码下载】
2017/03/09 Javascript
Angular.Js中过滤器filter与自定义过滤器filter实例详解
2017/05/08 Javascript
Vue 中mixin 的用法详解
2018/04/23 Javascript
JS实现的自定义map方法示例
2019/05/17 Javascript
JavaScript中Dom操作实例详解
2019/07/08 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
vue-cli3 取消eslint校验代码的解决办法
2020/01/16 Javascript
vue.js iview打包上线后字体图标不显示解决办法
2020/01/20 Javascript
JS性能优化实现方法及优点进行
2020/08/30 Javascript
antd中table展开行默认展示,且不需要前边的加号操作
2020/11/02 Javascript
使用python将图片按标签分入不同文件夹的方法
2018/12/08 Python
Python常用爬虫代码总结方便查询
2019/02/25 Python
Python小进度条显示代码
2019/03/05 Python
Python 读取有公式cell的结果内容实例方法
2020/02/17 Python
python中数据库like模糊查询方式
2020/03/02 Python
《小猫刮胡子》教学反思
2014/02/21 职场文书
工作保证书怎么写
2015/02/28 职场文书
2015中学学校工作总结
2015/07/20 职场文书
担保书怎么写 ?
2019/04/22 职场文书