解析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 相关文章推荐
写一个用户在线显示的程序
Oct 09 PHP
第五节--克隆
Nov 16 PHP
小偷PHP+Html+缓存
Nov 25 PHP
PHP入门速成教程
Mar 19 PHP
php面向对象全攻略 (十二) 抽象方法和抽象类
Sep 30 PHP
PHP setTime 设置当前时间的代码
Aug 27 PHP
PHP Session 变量的使用方法详解与实例代码
Sep 11 PHP
apache中为php 设置虚拟目录
Dec 17 PHP
php进行支付宝开发中return_url和notify_url的区别分析
Dec 22 PHP
php与Mysql的一些简单的操作
Feb 26 PHP
php中smarty变量修饰用法实例分析
Jun 11 PHP
PHP 生成微信红包代码简单
Mar 25 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
IIS下PHP的三种配置方式对比
2014/11/20 PHP
php json转换相关知识(小结)
2018/12/21 PHP
使用Apache的rewrite
2021/03/09 Servers
新浪的图片新闻效果
2007/01/13 Javascript
JavaScript 快捷键设置实现代码
2009/03/13 Javascript
Jquery 表单取值赋值的一些基本操作
2009/10/11 Javascript
javaScript面向对象继承方法经典实现
2013/08/20 Javascript
jQuery学习笔记之jQuery动画效果
2013/09/09 Javascript
jQuery实现当按下回车键时绑定点击事件
2014/01/28 Javascript
node.js中的path.join方法使用说明
2014/12/08 Javascript
VS2008中使用JavaScript调用WebServices
2014/12/18 Javascript
jQuery实现折线图的方法
2015/02/28 Javascript
JavaScript事件类型中焦点、鼠标和滚轮事件详解
2016/01/25 Javascript
基于JavaScript实现全选、不选和反选效果
2017/02/15 Javascript
微信小程序 商城开发(ecshop )简单实例
2017/04/07 Javascript
jquery写出PC端轮播图实例
2018/01/26 jQuery
vue权限管理系统的实现代码
2019/01/17 Javascript
vue实现todolist基本功能以及数据存储功能实例详解
2019/04/11 Javascript
javascript写一个ajax自动拦截并下载数据代码实例
2019/09/07 Javascript
对Layer UI 模块化的用法详解
2019/09/26 Javascript
[11:44]Ti9 OG夺冠时刻
2019/08/25 DOTA
Python中__init__和__new__的区别详解
2014/07/09 Python
Python Tkinter GUI编程入门介绍
2015/03/10 Python
使用Python更换外网IP的方法
2018/07/09 Python
在PyTorch中Tensor的查找和筛选例子
2019/08/18 Python
彻底搞懂 python 中文乱码问题(深入分析)
2020/02/28 Python
Python Dict找出value大于某值或key大于某值的所有项方式
2020/06/05 Python
实例教程 一款纯css3实现的数字统计游戏
2014/11/10 HTML / CSS
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
大码女装:Ulla Popken
2019/08/06 全球购物
土建专业大学生自荐信范文
2014/04/09 职场文书
2014年幼儿园学期工作总结
2014/12/05 职场文书
2014年干部培训工作总结
2014/12/17 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书
Python实现学生管理系统并生成exe可执行文件详解流程
2022/01/22 Python
利用Python实现翻译HTML中的文本字符串
2022/06/21 Python