CentOS 5.5下安装memcache
在一般情况下,CentOS已经默认安装了libevent的二进制库,但是没有安装相应的开发所用的头文件。
所以,你可以使用如下命令来安装:yum install libevent-devel
接着可以去下载最新的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 testing001STORED再从memcached中取回key为test1所对应的value:
get test1VALUE test1 0 10 testing001 END注:上面粗体表示系统输出的内容
如果能看到类似的输出,则证明memcached已经正确配置并启动成功了。
安装php-memcache扩展
下载:#解压安装 $ 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. 测试- <?php
- $mc = new Memcache;
- $mc->connect("127.0.0.1",11211);
- $item = $mc->get('item');
- if(!is_array($item)){
- echo "Add item to memcache";
- $mc->add('item',array('item'));
- }
- $item = $mc->get('item');
- var_dump($item);
- ?>
启动
memcached -d -m 10 -u root -l 202.207.177.177 -p 11211 -c 256 -P /tmp/memcached.pid |
参数说明
- -d选项是启动一个守护进程,
- -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
- -u是运行Memcache的用户,我这里是root,
- -l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址202.207.177.177,
- -p是设置Memcache监听的端口,我这里设置了11211,最好是1024以上的端口,
- -c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
- -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
总结:
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文件所有路径加入系统变量也可解决此问题(未偿试)