memcached和PHP的版本问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了memcached和PHP的版本问题相关的知识,希望对你有一定的参考价值。

memcached服务已经启动,而且运行正常,现在就是php和memcached的版本对不上,我的PHP是5.2.3的,下载了好多扩展的版本,包括针对php5.2.*的版本也还是不好用,已经重启过APACHE,甚至电脑,phpinfo里还是不显示,现在求php5.2.3的memcached的扩展,或者问题的解决方法,谢过各位。

参考:http://www.nioxiao.com/php-memcached
在PHP中使用Memcached,有两种方式,一种是安装PHP的memcache扩展(实际上还有另外一个memcached扩展,是基于比较流行的libmemcached库封装的),该扩展是用c写的,效率较高,需要在服务器上安装。另外一种则是直接使用客户端的php-memcached-client类库

参考资料:http://www.ningoo.net/html/2009/use_memcached_in_php.html

参考技术A http://www.ccvita.com/257.html
http://www.ccvita.com/258.html
你可能是安装和使用不正确,不是版本的问题
参考技术B PHP和membercached配合使用,有时会出现丢数据的情况

Memcached技术04 PHP操作memcached

如何使用php程序操作我们的memcached服务

danga公司为了能够让php程序能够操作memcached,专门提供了一套供php使用的扩展程序(即php_memcache.dll)

步骤,准备工作.

(1) 把 php_memcache.dll 文件拷贝 phpext

? 不同版本的php 所使用的 php_memcache.dll 的版本不一样

(2) 修改php.ini文件,加载 php_memcache.dll (该文件就是封装了一堆函数)

;加载php_memcache.dll 文件

extension=php_memcache.dll  (.dll扩展程序是用vccc++程序编译而成的。)

(3) 重新启动apache

(4) 我们写程序来完成curd操作.

mem1.php

<?php   
    //创建一个mem对象实例
    $mem=new Memcache;
    if(!$mem->connect("127.0.0.1",11211)){//打开一个memcached服务端连接
        die(‘连接失败!‘);
    }
    //增加
    //1.增加一个字串
    //Memcached::add(...)如果已经有key1则返回false.Memcached::set(...),key1存在则替换,key1不存在则添加
    /*if($mem->set(‘key1‘,"beijing",MEMCACHE_COMPRESSED,60)){
        
        echo ‘添加ok‘;
    }*/
    
    //2.添加数值
   /* if($mem->set(‘key1‘,100,MEMCACHE_COMPRESSED,60)){
        echo ‘添加ok‘;
    }*/
    //3.添加数组
    //在添加数组是,根据需要. 希望序列号放入  ,
    //serialize<=>unserialize, 如果根据需要,也可以json_encode <=> json_decode
    $arr=array("bj",‘tj‘);
    if($mem->set(‘key1‘,$arr,MEMCACHE_COMPRESSED,time()+31*3600*24)){
        echo ‘添加数组ok‘;
    }
    //4.添加对象
   /*class Dog{
        public $name;
        public $age;
        public function __construct($name,$age){
            $this->name=$name;
            $this->age=$age;
        }
    }
    $dog1=new Dog(‘小狗‘,50);
    if($mem->set(‘key1‘,$dog1,MEMCACHE_COMPRESSED,60)){   
        echo ‘添加对象ok‘;
    }*/
    //5.添加null 布尔值
    /*if($mem->set(‘key1‘,false,MEMCACHE_COMPRESSED,60)){    
        echo ‘添加布尔ok‘;
    }*/

    //6. 资源类型放入.
    /*$con=mysql_connect("127.0.0.1","root","root");
    if(!$con){
        die(‘连接数据库失败‘);
    }
    var_dump($con);
    echo "<br/>";
    if($mem->set(‘key1‘,$con,MEMCACHE_COMPRESSED,60)){
        
        echo ‘添加资源ok‘;
    }*/
    //查询
    $val=$mem->get(‘key1‘);
    var_dump($val);
    //修改
    //可以使用replace
    if($mem->replace("key11",‘hello‘,MEMCACHE_COMPRESSED,60)){
        echo ‘replace ok‘;
    }else{
        echo ‘replace no ok‘;
    }
    //删除
    echo "<br/>";
    if($mem->delete(‘key14‘)){
        echo ‘key14 删除‘;
    }else{
        echo ‘key14不存在‘;
    }

 

如何使用PHP源码来操作memcached服务

 

如果管理员不让我们去加载 memcache.dll 文件,我们可以直接通过源码操作.

 

首先关闭php_memcache.dll扩展,接着看mem3.php代码:

 

以上是关于memcached和PHP的版本问题的主要内容,如果未能解决你的问题,请参考以下文章

php中memcache扩展及memcached扩展的区别

在Windows下为PHP5.6安装redis扩展和memcached扩展

注意区分Memcached与Memcache差别

在Windows32下为PHP5.6安装redis扩展和memcached扩展

安装NoSQL数据库类型的redis 和 memcache数据库

linux下lampp(xampp)安装memcached扩展