`

Memcached - PHP 安装&使用

阅读更多

下载Memcached:
http://danga.com/memcached/download.bml

安装:
下载安装libevent,已安装可跳过:
下载地址:http://www.monkey.org/~provos/libevent/

Memcached For PHP Module下载地址:
http://pecl.php.net/package/memcache
http://cn.php.net/manual/zh/ref.memcache.php

安装Memcached服务端

root@tonyvicky:# tar vxzf memcached-1.1.12.tar.gz
root@tonyvicky:# cd memcached-1.1.12
root@tonyvicky:# ./configure --prefix=/usr/local/memcached
root@tonyvicky:# make
root@tonyvicky:# make install

安装完毕重启服务:

root@tonyvicky:# cd /usr/local/memcached/bin
root@tonyvicky:# ./memcached -d -m 50 -p 11211 -u root



安装PHP模块

root@tonyvicky:# tar vxzf memcache-1.5.tgz
root@tonyvicky:# cd memcache-1.5
root@tonyvicky:# /usr/local/php/bin/phpize
root@tonyvicky:# ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
root@tonyvicky:# make
root@tonyvicky:# make install

安装完后可能会有如下提示:

Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/

修改php.ini

extension_dir = "./"

修改为:

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/"

添加一行:

extension=memcache.so


安装完毕,测试:

PHP代码

<?php 

  $memcache  =  new  Memcache;  //创建一个memcache对象  

  $memcache ->connect( 'localhost' , 11211)  or   die  ( "Could not connect" );  //连接Memcached服务器

  $memcache ->set( 'key' 'test' );  //设置一个变量到内存中,名称是key 值是test  

  $get_value  =  $memcache ->get( 'key' );  //从内存中取出key的值   

  echo   $get_value

?>

Memcache的内定Function
connect(ip, port)
set(key, value)  数据压缩:set(key, value, MEMCACHE_COMPRESSED )
get(key)
increment , 同set(好像多了个计数功能,没试过)
getStats() 返回当前内存占用情况(return array) print_r($memcached->getStats());
flush  清空内存占用.

代码范例(来自chinaunix):

PHP代码

<?php   //访问统计   

$memcache  =  new  Memcache;  

$memcache ->connect(’localhost’, 11211)  or   die  ( "Could not connect" ); 

if ( $s = $memcache ->get(’a’)) {       $s = $s +1;       $memcache ->set(’a’, $s );  

else    $memcache ->set(’a’,1);

  echo  ’访问结果为:’. $s ;  

?> 

等效PHP代码

<?php  

$memcache  =  new  Memcache; 

$memcache ->connect(’localhost’, 11211)  or   die  ( "Could not connect" );    

if ( $s = $memcache ->increment(’a’,1)) {       echo   $s ;      

else    $memcache ->set(’a’,1);

  ?>  

 数据压缩PHP代码

<?php 

$memcache  =  new  Memcache;  

$memcache ->connect(’localhost’, 11211)  or   die  ( "Could not connect" );

  $test =( str_repeat (’jetwong’,100000));   $memcache ->set(’b’,( $test )); 

?>

  使用压缩:  

<?php

  $memcache  =  new  Memcache;

  $memcache ->connect(’localhost’, 11211)  or   die  ( "Could not connect" );

  $test =( str_repeat (’jetwong’,100000)); 

$memcache ->set(’b’,( $test ),MEMCACHE_COMPRESSED); 

?>  

内存的更新清理PHP代码

<?php

  $memcache  =  new  Memcache; 

$memcache ->connect(’localhost’, 11211)  or   die  ( "Could not connect" );  

  /*设置值*/

  $status  =  $memcache ->getStats();  

echo  ’设置前内存使用情况’. $status [’bytes’].’<br>’; 

echo  ’设置后’;   for ( $i =0; $i <9; $i ++) {       

       $memcache ->set(’b’. $i ,rand(1,99));          

       echo  ’<br>’. $i .’->’. $memcache ->get(’b’. $i );

}

  /*查看设置的值*/   

$status  =  $memcache ->getStats();

  echo  ’ delete 前内存使用情况’. $status [’bytes’].’<br>’;  

echo  ’<br>开始 delete ’;  

for ( $i =0; $i <9; $i ++) {     

    $memcache -> delete (’b’. $i );      

    echo  ’<br>’. $i .’->’. $memcache ->get(’b’. $i );  

}  

  /*查看flush使用的情况*/  

$status  =  $memcache ->getStats();  

echo  ’使用 flush 前内存使用情况’. $status [’bytes’].’<br>’;  

echo  ’使用 flush 情况:’; 

for ( $i =0; $i <9; $i ++) {       

   $memcache ->set(’b’. $i ,rand(1,99));           

   echo  ’<br>’. $i .’->’. $memcache ->get(’b’. $i );    

}  

$memcache -> flush (); 

echo  ’ flush 之后:’; 

for ( $i =0; $i <9; $i ++) {             

  echo  ’<br>’. $i .’->’. $memcache ->get(’b’. $i );

}  

$status  =  $memcache ->getStats(); 

echo  ’ flush 后内存使用情况’. $status [’bytes’].’<br>’;  

?> 

内存超量测试PHP代码

<?php  

$memcache  =  new  Memcache;  

$memcache ->connect(’localhost’, 11211)  or   die  ( "Could not connect" );      //600K左右

  $test1 str_repeat (’jetlee’,100000);   //600K左右   

$test2 str_repeat (’jetlee’,100000);   //600K左右   

$test3 str_repeat (’李连杰’,200000);   //600K左右  

$test4 str_repeat (’连杰李’,100000);   //200K  

$test5 file_get_contents (’http: //img.pconline.com.cn/images/photoblog/2988177/20068/4/1154688770042_mthumb.JPG’);

$test6 file_get_contents (’http: //img.pconline.com.cn/images/photoblog/1767557/20069/28/1159417108902_mthumb.jpg’);     

for ( $i =1; $i <=6; $i ++) {      

   $j =’test’. $i ;     

   if ( $memcache ->set( $j ,$ $j ))

   {         

          echo   $j .’->设置成功<br>’;  

          $status  =  $memcache ->getStats();

           echo  ’内存:’. $status [’bytes’].’<br>’;

   } else  {

           echo   $j .’->设置失败<br>’;

           }

 

?>

总结 PHP代码

<?

  //设置篇

  if ( $data  =  $memcache ->get(’k’, $v )) {      

   //显示我们的数据       

}   else  { 

    $data  = get_from_database;  //得到数据源      

    if (! $memcache ->set(’k’, $data ), MEMCACHE_COMPRESSED)  //开始设置     

    log();    //不成功,记录失败信息       

}

?> 

分享到:
评论

相关推荐

    php-memcached-3.1.3.tar.gz

    安装php-memcached扩展 https://github.com/php-memcached-dev/php-memcached tar -zxvf php-memcached-3.1.3.tar.gz && cd /root/php-memcached-3.1.3 && /usr/local/php7/bin/phpize && ./configure --with-...

    memcached-windows64-1.4安装文件

    4. 启动服务:使用命令行工具启动Memcached服务,例如:`memcached.exe -d install`来安装服务,`memcached.exe -d start`来启动服务。 5. 集成测试:编写简单的客户端程序,连接到Memcached服务器,进行存取操作,...

    memcached-1.5.16.tar.gz

    在Linux环境下,可以使用以下步骤安装memcached 1.5.16: 1. 下载源码包:`wget http://www.memcached.org/files/memcached-1.5.16.tar.gz` 2. 解压:`tar -zxvf memcached-1.5.16.tar.gz` 3. 编译安装:`cd ...

    memcached-win-32/64-1.4.4-14

    memcached的基本设置: -p 监听的端口 -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重起memcached服务 -d stop|shutdown 关闭正在运行的memcached服务 -d install 安装memcached服务 -d ...

    memcached-1.2.1-win32下载及安装方法

    **Memcached 1.2.1 for Windows:安装与使用指南** Memcached 是一款高性能、分布式内存对象缓存系统,广泛应用于减轻数据库负载,提高Web应用的响应速度。本文将详细介绍如何在Windows环境下安装和使用 Memcached ...

    memcached-win-1.5.6.rar

    在实际应用中,Memcached 可以与多种编程语言结合使用,如 PHP、Python、Java、Ruby 等,通过其提供的客户端库进行数据的缓存操作。它支持简单的键值对存储,适合存储临时性的、非结构化的数据,如session数据、热门...

    memcached-client.php

    memcached-client.php

    memcached-1.5.11.tar.gz

    3. 启动服务:安装完成后,使用`memcached`命令启动服务,可以设置内存大小、端口等参数。 三、Memcached的工作机制 1. 内存管理:Memcached采用slab分配机制管理内存,将内存分为多个 slab 分区,每个分区内部又...

    memcached-1.5.4

    - 最后,使用`sudo make install`将`memcached`安装到系统路径,通常为`/usr/local/bin`。 4. **运行与配置** - 启动`memcached`服务,可以使用命令`memcached -d -p [port] -m [memory]`,参数`-d`表示以守护...

    PHP安装memcached

    ### PHP安装memcached知识点 #### 一、理解Memcached与PHP的关系 - **Memcached**:是一种高性能的分布式内存对象缓存系统,用于通过缓存数据库查询结果减少数据库负载,加速动态Web应用,提高网站访问速度。 - **...

    php-memcached-demo.tar.gz

    PHP-Memcached-Demo项目,通过一个压缩包形式(php-memcached-demo.tar.gz)提供了一个实战示例,帮助开发者了解并掌握如何在PHP环境中使用Memcached作为缓存服务,以实现数据的快速访问和存储。本文将深入探讨这一...

    memcached-win32-1.4.4-14

    6. **客户端连接**:安装完成后,你可以在你的应用程序中使用各种编程语言(如PHP、Python、Java等)的memcached客户端库来连接并操作这个缓存服务。 7. **监控与管理**:虽然memcached本身没有图形界面管理工具,...

    memcached-1.2.6-win32-bin.zip

    在本文中,我们将围绕"memcached-1.2.6-win32-bin.zip"这个压缩包,探讨其核心功能、工作原理,以及如何在Windows环境下安装和使用。 一、Memcached的核心功能 1. 分布式缓存:Memcached基于键值对存储,可将数据...

    memcached-1.0.2.tgz

    6. 使用`make install`将编译后的扩展安装到PHP的扩展目录。 7. 更新php.ini配置文件,添加扩展并设置适当的参数。 8. 重启PHP服务器使更改生效。 在实际应用中,开发者可以根据需求选择`memcached`或`memcache`...

    memcached-client-php-0.1.2.rar_memcached-client_php_six4fu

    4. **README** - 文件包含了项目的简介、安装指南、使用方法等信息,是快速了解项目的关键。 5. **whatsnew.txt** - 可能列出了新版本的主要特性、改进和修复的bug,帮助用户了解新版本的变化。 6. **doc** - 这个...

    缓存memcached-1.2.1

    - **缓存策略**:Memcached通常使用LRU(Least Recently Used)策略,当内存空间不足时,优先淘汰最近最少使用的数据。 - **数据过期**:可以为每个键设置过期时间,过期后自动删除数据,也可以设置永不过期。 - ...

    memcached-2.1.0.tgz

    **标题解析:** "memcached-2.1.0.tgz" 是一个压缩包文件,其中包含的是 memcached 扩展的...以上就是关于"memcached-2.1.0.tgz"的相关知识点,涵盖了memcached服务、PHP扩展、相关库的介绍以及安装和使用的基本流程。

    memcached-2.2.0RC1.tgz

    《深入理解Memcached 2.2.0RC1版本》 Memcached,作为一个高效、...通过理解和掌握memcached的工作原理、安装部署以及客户端的使用,开发人员可以充分利用这个强大的缓存系统,为自己的项目带来更高的效率和稳定性。

    memcached-1.4.24.tar.gz 下载

    描述中提到的"Linux下可用的memcached压缩包及详细的安装步骤,一次安装通过"意味着这个压缩包不仅包含了memcached的源码,还可能包括一份指导如何在Linux系统上顺利安装和使用的文档。 **memcached详解** ...

    Memcached-Java-Client-release_2.6.1.zip

    本文将围绕标题“Memcached-Java-Client-release_2.6.1.zip”展开,详细讲解如何在Java项目中整合并使用Memcached客户端库。 1. **Memcached简介** - Memcached是一种轻量级、基于内存的键值对存储系统,用于存储...

Global site tag (gtag.js) - Google Analytics