php memcache

CentOS 5.5下安装memcache

   

在一般情况下,CentOS已经默认安装了libevent的二进制库,但是没有安装相应的开发所用的头文件。
所以,你可以使用如下命令来安装:

yum install libevent-devel

接着可以去http://memcached.org/下载最新的memcached发布版本。
解压缩:
tar -xzvf memcached-1.4.4.tar.gz

配置:
cd memcached-1.4.4
./configure –with-libevent=/usr/

备注:如果 libevent 不是安装在 /usr 目录下,那么需要把 libevent-1.4a.so.1  拷贝/链接到    /usr/lib 中,否则memcached在配置的时候会报找不到libevent。

编译:
make

安装:
make install

启动:
memcached -l 127.0.0.1 -d -p 11211 -u nobody -m 1024

上面的命令中-d表示用 daemon 的方式启动 memcached,-l和-p组合表示监听在 192.168.10.60 的 11211 端口上(如果不用-p指定端口号,则memcached将运行在11211端口上),-u表示运行用户为 nobody,-m表示为其分配1024MB 的内存。

测试:
可以使用telnet连接到192.168.10.60的11211端口,连接成功以后,
先向memcached中添加一个key-value对,key为test1(后面的0 0 10所表示的具体含义,在下一篇文章中会详细介绍),value为testing001:
set test1 0 0 10
testing001
STORED

再从memcached中取回key为test1所对应的value:
get test1
VALUE test1 0 10
testing001
END

注:上面粗体表示系统输出的内容

如果能看到类似的输出,则证明memcached已经正确配置并启动成功了。

安装php-memcache扩展
下载:http://pecl.php.net/get/memcache-2.2.4.tgz

#解压安装
$ tar -zxvf memcache-2.2.4.tgz
$ cd memcache-2.2.4
$ /usr/local/php/bin/phpize
$ ./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache
$ make

$ make test

$ mkdir /usr/local/php/extensions/
$ cp modules/memcache.so /usr/local/php/extensions/


#在php.ini中加入扩展
[vi /usr/local/lib/php.ini]
extension_dir = "/usr/local/php/extensions/"
extension     = "memcache.so"


重新启动apache即可

5. 测试

  1. <?php
  2.     $mc = new Memcache;
  3.     $mc->connect("127.0.0.1",11211);
  4.     $item = $mc->get('item');
  5.     if(!is_array($item)){
  6.         echo "Add item to memcache";
  7.         $mc->add('item',array('item'));
  8.     }
  9.     $item = $mc->get('item');
  10.     var_dump($item);
  11. ?>

 

启动

 memcached -d -m 10 -u root -l 202.207.177.177 -p 11211 -c 256 -P /tmp/memcached.pid

   参数说明

  1. -d选项是启动一个守护进程,  
  2. -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,  
  3. -u是运行Memcache的用户,我这里是root,  
  4. -l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址202.207.177.177,  
  5. -p是设置Memcache监听的端口,我这里设置了11211,最好是1024以上的端口,  
  6. -c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,  
  7. -P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid, 

 ★查看状态

pid memcache服务器的进程ID
uptime服务器已经运行的秒数
time 服务器当前的unix时间戳
version memcache 版本
pointer_size 当前操作系统的指针大小(32位系统一般是32bit)
rusage_user 进程的累计用户时间
rusage_system 进程的累计系统时间
curr_items 服务器当前存储的items数量
total_items 从服务器启动以后存储的items总数量
bytes 当前服务器存储items占用的字节数
curr_connections 当前打开着的连接数
total_connections 从服务器启动以后曾经打开过的连接数
connection_structures 服务器分配的连接构造数
cmd_get get命令(获取)总请求次数
cmd_set set命令(保存)总请求次数
get_hits 总命中次数
get_misses 总未命中次数
evictions 为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)
bytes_read 总读取字节数(请求字节数)
bytes_written 总发送字节数(结果字节数)
limit_maxbytes 分配给memcache的内存大小(字节)
threads 当前线程数 

 ★关闭服务

 kill `cat /tmp/memcached.pid`

  ★监控服务

1.利用本附件的memadmin-1.0.12.tar.gz来监控

 2.利用nagios监控

   安装插件后定义命名在vi commands.cfg,加入

 define command {
        command_name check_memcached
        command_line $USER1$/check_memcached -H $HOSTADDRESS$:$ARG1$ --size-warning 92 --size-critical 95
              }

 

   添加对memcache监控

define service{
        use generic-service; Name of service template to use
        host_name waptx-5-111.waptx.com
        service_description check_memcached_32004
        servicegroups Memcached
        check_command check_memcached!32004
}

 

 

memcache客户端

各种memcache客户端API

http://code.google.com/p/memcached/wiki/Clients

总结:

1.更改php.ini,需要重启php-fpm 语法:/usr/local/php/sbin/php-fpm restart

2.若想在编译PHP时指定配置文件路径,加上:--with-config-file-path=/etc ,些路径需要是存在的路径,否则php.ini无法写入

3.找不到php.ini时,系统启用默认配置模式

4.将php.ini文件所有路径加入系统变量也可解决此问题(未偿试)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章