PHP MemCached 缓存应用

 更新时间:2016年11月25日 16:27  点击:2265
 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写

并通过memcached协议与守护进程通信。但是它并不提供冗余(例如,复制其hashmap条目);当某个服务器s停止运行或崩溃了,所有存放在s上的键/值对都将丢失。   memcached由danga interactive开发,用于提升livejournal.com访问速度的。lj每秒动态页面访问量几千次,用户700万。memcached将数据库负载大幅度降低,更好的分配资源,更快速访问。

memcache常用方法

memcache::add — 添加一个值,如果已经存在,则返回false
memcache::addserver — 添加一个可供使用的服务器地址
memcache::close — 关闭一个memcache对象
memcache::connect — 创建一个memcache对象
memcache::debug — 控制调试功能
memcache::decrement — 对保存的某个key中的值进行减法操作
memcache::delete — 删除一个key值
memcache::flush — 清除所有缓存的数据
memcache::get — 获取一个key值
memcache::getextendedstats — 获取进程池中所有进程的运行系统统计
memcache::getserverstatus — 获取运行服务器的参数
memcache::getstats — 返回服务器的一些运行统计信息
memcache::getversion — 返回运行的memcache的版本信息
memcache::increment — 对保存的某个key中的值进行加法操作
memcache::pconnect — 创建一个memcache的持久连接对象
memcache::replace — r对一个已有的key进行覆写操作
memcache::set — 添加一个值,如果已经存在,则覆写
memcache::setcompressthreshold — 对大于某一大小的数据进行压缩
memcache::setserverparams — 在运行时修改服务器的参数

memcache方法使用

代码如下:

 代码如下 复制代码
<?php教程
$memcache = new memcache;
$memcache->connect('127.0.0.1', 11211) or die("连接失败");
$memcache->set('name', '张三');
$val = $memcache->get('name');
?>

注:set方法的完整版本,set(键名,键值,是否压缩,保持时间)

 代码如下:

 代码如下 复制代码
<?php
$memcache = new memcache;
$memcache -> connect('127.0.0.1', 11211) or die("连接失败");
$memcache -> set('name', array('一个','两个'));
$val = $memcache->get('name');
print_r($val);
$memcache -> close();
?> 
 代码如下 复制代码
$file            =        "data.dat";        //数据文件
if(file_exits($file)){                        //容错处理,防止无数据文件存在
    $fp=fopen($file,"w+");
    fclose($fp);
    unset($fp);
}
$listnumber        =        20;            //每页显示条数
$fp            =        file($file);        //读取数据到内容中
$number            =        count($fp);        //计算总数据量
$pagenumber        =        floor($number/$listnumber)+1;
if($number<1){
    print "暂时无记录,欢迎留言";
    /*+--------------------------------+
          |在这里打印form表单或连接到表但的|
          | url,               |
          +--------------------------------+*/
}else{
    if(empty($_post["page"])){                //这段if...else...是为了兼容php4.20的默认设置,防止出现无效的全局变量而写的
        $page        =    0;            //因为是从数据文本读出来的,保存在数组中,有个o下标
    }else{
        $page        =    $_post["page"]
    }
    if($page<0 || $page>pagenumber){            //检错处理,当页面参数跳出总页面或小于首页(0)的时候,将返回到第一页
        $page=0;
    }
    $startnote    =    $page*$listnumber;        //开始记录位置
    $endnote    =    $startnote+$listnumber;        //结束记录位置
    //for($int_a=$startnote;$int_a<$endnote;$int_a++){    //排序显示类似asc模式
    pirnt "<table>"
    for($int_a=$endnote;$int_a>=$startnote;$int_a--){    //排序显示类似desc模式
        $info=explode(" ",$fp[$int-a]);        //切割数据获得每条记录的详细数据我这里是用了一个tab键分割
        print "<tr><td>用户:$info[1] 标题$info[2] 发言内容:$info[3] 发布时间:$info[4] ip:$info[5]";
    }
    $prevpage    =    $page-1;            //上一页的page数
    $nextpage    =    $page+1;            //下一页的page数
    print "<tr><td>
    <a href="$_server["php_self"]?page=0">首页</a>
    <a href="$_server["php_self"]?page=$prevpage">上一页</a>
    <a href="$_server["php_self"]?page=$nextpage">下一页</a>
    <a href="$_server["php_self"]?page=$pagenumber">尾页</a>
    </table>";                        //这里您可以直接将页面的检测加到这里,那样给别人看的是舒服的,但是效果是一样的
                                //例如:这里有可能出现20页出现        <a href="index.php?page=21">下一页</a>    或<a href="index.php?page=-1">


}

php 递归删除目录(文件夹)下面举了两个实例,一个是删除单独的空目录代码,一个是批量删除目录文件夹的代码。

//删除单个空文件夹

 代码如下 复制代码

$dir = 'www.111cn.net';
if( is_dir( $dir ) ) //判断是否为目录
{
 if( rmdir( $dir ) )
 {
  echo '目录删除成功';
 }
 else
 {
  echo '没有删除目录的权限';
 }
}
else
{
 echo '不是一个有效的目录';
}

//下面来看一个批量递归删除目录的函数吧。

 代码如下 复制代码
function deletedir($dir){
      if(!handle=@opendir($dir)){     //检测要打开目录是否存在
               die("没有该目录");
      }
     while(false !==($file=readdir($handle))){
               if($file!=="."&&$file!==".."){       //排除当前目录与父级目录
                            $file=$dir .directory_separator. $file;
                            if(is_dir($file)){
                                  deletedir($file);
                            }else{
                                  if(@unlink($file)){
                                         echo "文件<b>$file</b>删除成功。<br>";
                                  }else{
                                          echo  "文件<b>$file</b>删除失败!<br>";
                                 }
                }
     }
    if(@rmdir($dir)){
           echo "目录<b>$dir</b>删除成功了。<br> ";
    }else{
           echo "目录<b>$dir</b>删除失败!<br> ";
  }
}
 


//测试程序
$dir="/var/www/test";
deletedir($dir);

这里你可以下载dedecms然后找到lib_splitword_full.php这个文件,或者到http://down.111cn.net下载分词包,按照下面的方法就可以正确的使用dedecms的分词系统了。

require("lib_splitword_full.php");

$str = "一线楼市交易清淡";


$t1 = exectime();

$sp = new splitword();

$t2 = exectime();

//$t0 = $t2-$t1;

//echo "载入时间: $t0 <br><br>";


echo $sp->findnewword($sp->splitrmm($str))."<hr>";
echo $sp->splitrmm($str)."<hr>";

$sp->clear();

echo $str."<br>";

$t3 = exectime();
$t0 = $t3-$t2;
echo "<br>处理时间: $t0 <br><br>";


function exectime(){
 $time = explode(" ", microtime());
 $usec = (double)$time[0];
 $sec = (double)$time[1];
 return $sec + $usec;
}

这是一款利用php 与mysql数据库实现的用户注册与登录代码哦,功能也是比较简单实用的用户注册程序哦。同时也加了用户登录时验证码程序,这样做就安全了很多哦。
 代码如下 复制代码

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.111cn.net/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>在后台增加用户</title>
</head>

<body>

<?php
 require_once("config.php");
   if(isset($_post["submit2"])){
   mysql_select_db('a0807000225'); //这个是数据库表
   $author=$_session["user_name"];
   define(all_ps教程,"jinquan");
   echo $username=$_post["username"];
   echo $password=md5($password=$_post["password"].all_ps);
   echo "</br>";
   if($username){
   if($password){
      $str = "insert into `dx_user_list` ( `uid` , `m_id` , `username` , `password` ) values (ascii( null ) , '1', '$username', '$password');";
   $rs=mysql_query($str,$conn);
   mysql_close($conn);
  }
  if($rs){
    echo"<script>alert('新增成功');location.href='yonghuzc.php'</script>";
    }else{
    echo"<script>alert('新增失败');location.href=''yonghuzc.php'</script>";
    }
  }
 }

?>

[!--infotagslink--]

相关文章

  • PHP分布式框架如何使用Memcache同步SESSION教程

    本教程主要讲解PHP项目如何用实现memcache分布式,配置使用memcache存储session数据,以及memcache的SESSION数据如何同步。 至于Memcache的安装配置,我们就不讲了,以前...2016-11-25
  • PHP+memcache实现消息队列案例分享

    memche消息队列的原理就是在key上做文章,用以做一个连续的数字加上前缀记录序列化以后消息或者日志。然后通过定时程序将内容落地到文件或者数据库。php实现消息队列的用处比如在做发送邮件时发送大量邮件很费时间的问...2014-05-31
  • JS跨浏览器解析XML应用过程详解

    这篇文章主要介绍了JS跨浏览器解析XML应用过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-10-16
  • vivo X9如何查出后台偷跑流量应用?vivo X9查出后台偷跑流量应用的方法

    vivo X9如何查看后台流量偷跑的情况?小编教你轻松查到!还不了解的小伙伴快来看看吧! 1)打开手机自带的【i管家】应用,打开后点击【流量监控】选项。(如下图) 2)接着选...2016-12-31
  • PHP云存储Redis的应用场景与Redis实现排行榜功能

    Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。本文我们来讲解Redis的应用场景实例。 C...2016-11-25
  • PHP explode()函数的几个应用和implode()函数有什么区别

    explode()函数介绍explode() 函数可以把字符串分割为数组。语法:explode(separator,string,limit)。 参数 描述 separator 必需。规定在哪里分割字符串。 string...2015-11-08
  • PHP Libevent扩展安装配置及简单应用

    Libevent 是一个用C语言编写的、轻量级的开源高性能网络库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,下文我们就一起来看PHP Libevent扩展安装...2016-11-25
  • php中echo <<< 的应用

    <? $a="变量的值将被带入"; echo <<< help <pre> php中echo <<< 的应用 虽然echo "...";可以断行,但若其中如出现",则仍需做转义 处理。需写做: echo " ...2016-11-25
  • PHP-GTK 介绍及其应用

    1. PHP-GTK介绍 1.1 PHP-GTK PHP-GTK是PHP的延伸模组,它可以让程式设计师写出在客户端执行的、且独立的GUI的程式。这个模组不允许在浏览器上显视GTK+的程式,它一开始就...2016-11-25
  • Vue中keep-alive的两种应用方式

    这篇文章主要介绍了Vue中keep-alive的两种应用方式,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-15
  • Windows下Memcache的安装方法

    很多phper不知道如何在Windows下搭建Memcache的开发调试环境,最近个人也在研究Memcache,记录下自己安装搭建的过程。 ...2016-01-27
  • 在Mac OS的PHP环境下安装配置MemCache的全过程解析

    这篇文章主要介绍了在Mac OS的PHP环境下安装配置MemCache的全过程解析,MemCache是一套分布式的高速缓存系统,需要的朋友可以参考下...2016-02-18
  • css中Float属性深入剖析与应用

    这篇文章介绍了css中的float属性的应用和理解,让设置的标签产生浮动效果。希望能帮助到有需要的同学。 一、Float的特性 1. 应用于文字围绕图片 2. 创建一个块级框...2017-01-22
  • ajax简单与ajax+php实例应用(1/4)

    [ajax介绍]   ajax是使用客户端脚本与web服务器交换数据的web应用开发方法。web页面不用打断交互流程进行重新加裁,就可以动态地更新。使用ajax,用户可以创建接近本地...2016-11-25
  • php ob_start() ob_end_flush()缓存技术简单应用

    本文章介绍了一个简单的关于php入门篇-缓存技术简单应用,有需要的朋友可以看看哦,这里是利用了ob_start(); ob_end_flush(); 来实例的。 代码如下 复制...2016-11-25
  • php memcache和php memcached比较以及问题

    php memcache和php memcached是php的memcache分布式的高速缓存系统的两个客户端,php memcache是老客户端,php memcached是功能更加完善的新的代替php memcached的。...2016-11-25
  • Android 应用包 apk 的内部结构详解

    Android应用程序会通过一个工具将应用所有的CLASS文件转换成一个DEX文件,而后Dalvik虚拟机会从其中读取指令和数据。 Android 是Google开发的基于Linux平台的开源手机操...2016-09-20
  • PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )

    这篇文章主要介绍了PHP中eAccelerator、memcached、xcache、APC 4个加速、缓存扩展的区别的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2016-07-25
  • 时隔数日苹果又发布了iOS 10.2 Beta3:TV应用来了

    网易科技讯 11月14日消息,据美国媒体报道,当日苹果开始推出iOS 10.2 Beta3公开测试版,距离发布iOS 10.2 Beta2发布后仅数日。此外,苹果还推出数周前发布MacBook Pro时提到的TV应用,现在该应用有了Up Next功能。...2016-11-22
  • php memcache和memcached模块安装应用

    memcache的官方主页:php教程.net/package/memcache">http://pecl.php.net/package/memcache memcached的官方主页:http://pecl.php.net/package/memcached 以下是我安装...2016-11-25