windows下memcached的安装

Memcached是什么:
Memcached是高性能的,分布式的内存对象缓存系统 ,用于在动态应用中减少数据

负载 ,提升访问速度。
Memcached由Danga Interactive开发,用于提升LiveJournal.com访问速度的。LJ

每秒动态页面访问量几千次,用户700万。Memcached将数据库 负载大幅度降低,

更好的分配资源,更快速访问。
首先我在windows下实现它,过后再在linux试试.
下载memcached-win32 和php_memcache.dll(要和php的版本对应上)
1.memcahced下载后,压缩之前发现不到100K,压缩后也不到200K,这东西居然有这

么神奇,放到C盘,进入目录里面有一个memcached.exe,双击就启动了,让窗口开着,

或者在cmd里面c:\memcached\memcached.exe -d start 都可以启动
2.修改php.ini的配制文件
加入extension=php_memcache.dll 这一行代码,位置无所谓
3.php_memcache.dll放到php的安装文件中,一般在php源码的ext目录下
4.重启apache后,查看一下phpinfo(写一个phpinfo()函数就可以看到),如果有

memcache,那么就说明安装成功
开始测试一下代码
$mem = new Memcache;
$mem->connect(”127.0.0.1″, 11211);
$mem->set(’key’, ‘This is a memcached test!’, 0, 60);
$val = $mem->get(’key’);
echo $val;
如果输出This is a memcached test!刚表明安装成功

--------------------------------------------------------------------------------
也在本地做了一下测试,用的是windows系统
1.下载Memcache for win32

下载地址: http://jehiah.cz/projects/memcached-win32/
选择memcached 1.2.1 for Win32 binaries (Dec 23, 2006) 是exe的程序

2.下载php_memcache.dll

下载地址: http://pecl4win.php.net/ext.php/php_memcache.dll
选择和Php版本对应的,我php版本是5.2.6的,里边没有,索性down了个5.2.1的也能用

打开php.ini文件,添加扩展extension=php_memcache.dll(没有分号)
重启apache
phpinfo看一下,现在应该有memcached的了

memcache主要应用方法:
(1) Memcache::getVersion 返回memcache的版本信息.

(2) Memcache::connect 创建一个memcache连接对象.

(3) Memcache::pconnect 创建一个memcacher持久连接对象.

(4) Memcache::close 关闭一个Memcache对象.

(5) Memcache::set 用来添加一个值.
有四个参数,第一个参数是key,第二个参数是value,第三个参数可选,表示是否压缩保存,第四个参数可选,用来设

置一个过期自动销毁的时间.

(6) Memcache::add 作用和Memcache::set方法类似.
两个方法的区别是如果Memcache::add方法的返回值为false,表示这个key已经存在,而Memcache::set方法则会直

接覆写.

(7) Memcache::get 用来获取一个值.
只有一个参数(key,在Memcache::set时设置)

(8) Memcache::replace 对一个已有的key进行覆写操作.
有四个参数,与 Memcache::set 相同.

(9) Memcache::increment 对保存的某个key中的值进行加法操作.

(10) Memcache::decremen 对保存的某个key中的值进行减法操作.

(11) Memcache::setCompressThreshold 对大于某一大小的数据进行压缩。

(12) Memcache::delete 删除一个key
有两个参数,第一个是key名称.第二个是删除延迟时间

(13) Memcache::flush 清除所有缓存的数据,但是不会削去使用的内存空间.

(14) Memcache::addServer 添加一个可供使用的服务器地址.

(15) Memcache::setServerParams 在运行时修改服务器的参数.
写个php程序测试一下:

复制PHP 内容到剪贴板

PHP代码:


<?php
    
/*创建memcached对象*/
    
$mem  = new  Memcache ();
    
/*创建一个链接,memcache默认端口是11211*/
    
$mem -> connect ( '127.0.0.1' , 11211 );
    
/*查询数据*/
    
$sql  "select `username` from `hao_users` where 1=1 limit 5000" ;
    
/*缓存键*/
    
$key  md5 ( $sql );
    if(!(
$mem -> get ( $key )))
    {
        
$link  mysql _connect ( "219.153.41.215" , 'root' , '**' );
        
mysql_select_db ( 'oldhaocpc' );
        
$res  mysql_query ( $sql );
        while(
$row  mysql_fetch_array ( $res ))
        {
            
$arrdata [] =  $row ;
        }
        
$mem -> set ( $key , $arrdata );
    }
    
$data  $mem -> get ( $key )? $mem -> get ( $key ): $arrdata ;
    
/*输出测试*/
    
echo  '<pre>' ;
    
print_r ( $data );
    
/*关闭memcached连接*/
    
$mem -> close ();
?>

 

为了做测试,连接的是远程数据库 。看到的效果比较明显。

 

---------------------------------------------------------------------

要想在windows中使用memcached,必须先下载memcached for win32安装。

 

下载Windows的Server端

下载地址:http://code.jellycan.com/memcached/

安装Memcache Server(也可以不安装直接启动)

1. 下载memcached的windows稳定版,解压放某个盘下面,比如在c:\memcached
2. 在CMD下输入 "c:\memcached\memcached.exe -d install" 安装.
3. 再输入:"c:\memcached\memcached.exe -d start" 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。

如果下载的是二进制的版本,直接运行就可以了,可以加上参数来加以设置。

常用设置:
-p <num>          监听的端口
-l <ip_addr>      连接的IP地址, 默认是本机
-d start          启动memcached服务
-d restart        重起memcached服务
-d stop|shutdown  关闭正在运行的memcached服务
-d install        安装memcached服务
-d uninstall      卸载memcached服务
-u <username>     以<username>的身份运行 (仅在以root运行的时候有效)
-m <num>          最大内存使用,单位MB。默认64MB
-M                内存耗尽时返回错误,而不是删除项
-c <num>          最大同时连接数,默认是1024
-f <factor>       块大小增长因子,默认是1.25
-n <bytes>        最小分配空间,key+value+flags默认是48
-h                显示帮助

 

启动该服务后,memcached服务默认占用的端口是11211,占用的最大内存默认是64M。

  在修改这2个配置选项就碰到了一些问题,网上搜索了很多资料,都说使用下面的命令启动服务就可以:

  c:memcachedmemcached.exe -p 12345 -m 1024 -d start  ,  -p 表示要修改的端口, -m表示占用的最大内存(单位为M)。

  但是无论怎么调用这个命令,发现端口一直还是11211。

  打开windows服务控制面板一看,发现memcached.exe 默认安装的服务器启动参数中根本没写-p -m的参数,只有1个 -d runservice参数。

  所以不管用什么命令启动服务都是没用的,见下图:

点击查看原图

  于是就想到直接修改windows服务的启动参数,操作如下,打开注册表,找到:

  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server

  其中的ImagePath项的值为:"c:memcachedmemcached.exe" -d runservice

  改成:"c:memcachedmemcached.exe" -p 12345 -m 128 -d runservice

  保存后重新启动memcached服务,然后在命令行中输入netstat -n -a  看看现在端口是不是改啦,^_^。

 

 

 

 

此条目发表在article分类目录,贴了标签。将固定链接加入收藏夹。