centos 下memcached 构建以及php memcache安装

memcached 与memcache的区别,请google

一、构建memcached 服务器(memcached服务端程序的安装)

1)memcached用到了libevent这个库,用于Socket的处理

 
  
  1. wget http://www.monkey.org/~provos/libevent-2.0.10-stable.tar.gz 
  2. tar xzvf libevent-2.0.10-stable.tar.gz
  3. cd libevent-2.0.10-stable
  4. ./configure --prefix=/usr
  5. make && make install

验证libevent是否正确安装

 
  
  1. ls -al /usr/lib |grep libevent  
 
  
  1. [root@test /]# ls -al /usr/lib |grep libevent  
  2. lrwxrwxrwx   1 root root      21 Feb 28 19:27 libevent-2.0.so.5 -> libevent-2.0.so.5.0.1 
  3. -rwxr-xr-x   1 root root  943520 Feb 28 19:27 libevent-2.0.so.5.0.1 
  4. -rw-r--r--   1 root root 1532202 Feb 28 19:27 libevent.a 
  5. lrwxrwxrwx   1 root root      26 Feb 28 19:27 libevent_core-2.0.so.5 -> libevent_core-2.0.so.5.0.1 
  6. -rwxr-xr-x   1 root root  554374 Feb 28 19:27 libevent_core-2.0.so.5.0.1 
  7. -rw-r--r--   1 root root  928010 Feb 28 19:27 libevent_core.a 
  8. -rwxr-xr-x   1 root root     971 Feb 28 19:27 libevent_core.la 
  9. lrwxrwxrwx   1 root root      26 Feb 28 19:27 libevent_core.so -> libevent_core-2.0.so.5.0.1 
  10. lrwxrwxrwx   1 root root      27 Feb 28 19:27 libevent_extra-2.0.so.5 -> libevent_extra-2.0.so.5.0.1 
  11. -rwxr-xr-x   1 root root  410763 Feb 28 19:27 libevent_extra-2.0.so.5.0.1 
  12. -rw-r--r--   1 root root  604266 Feb 28 19:27 libevent_extra.a 
  13. -rwxr-xr-x   1 root root     978 Feb 28 19:27 libevent_extra.la 
  14. lrwxrwxrwx   1 root root      27 Feb 28 19:27 libevent_extra.so -> libevent_extra-2.0.so.5.0.1 
  15. -rwxr-xr-x   1 root root     936 Feb 28 19:27 libevent.la 
  16. lrwxrwxrwx   1 root root      29 Feb 28 19:27 libevent_openssl-2.0.so.5 -> libevent_openssl-2.0.so.5.0.1 
  17. -rwxr-xr-x   1 root root   85731 Feb 28 19:27 libevent_openssl-2.0.so.5.0.1 
  18. -rw-r--r--   1 root root  120996 Feb 28 19:27 libevent_openssl.a 
  19. -rwxr-xr-x   1 root root    1007 Feb 28 19:27 libevent_openssl.la 
  20. lrwxrwxrwx   1 root root      29 Feb 28 19:27 libevent_openssl.so -> libevent_openssl-2.0.so.5.0.1 
  21. lrwxrwxrwx   1 root root      30 Feb 28 19:27 libevent_pthreads-2.0.so.5 -> libevent_pthreads-2.0.so.5.0.1 
  22. -rwxr-xr-x   1 root root   18094 Feb 28 19:27 libevent_pthreads-2.0.so.5.0.1 
  23. -rw-r--r--   1 root root   18678 Feb 28 19:27 libevent_pthreads.a 
  24. -rwxr-xr-x   1 root root     999 Feb 28 19:27 libevent_pthreads.la 
  25. lrwxrwxrwx   1 root root      30 Feb 28 19:27 libevent_pthreads.so -> libevent_pthreads-2.0.so.5.0.1 
  26. lrwxrwxrwx   1 root root      21 Feb 28 19:27 libevent.so -> libevent-2.0.so.5.0.1 

 2)安装memcached

 
  
  1. wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz 
  2. tar xzvf memcached-1.4.5.tar.gz  
  3. cd memcached-1.4.5  
  4. ./configure -–with-libevent=/usr 
  5. make && make install  

 安装完成后,程序会将memcached 自动放到 /usr/local/bin/memcached

 
  
  1. [root@test /]# which memcached 
  2. /usr/local/bin/memcached 

 3)安装PHP的memcache扩展

memcache 的项目下载地址

 
  
  1. http://pecl.php.net/package/memcache 

 安装code

 
  
  1. wget http://pecl.php.net/get/memcache-3.0.5.tgz 
  2. tar xf memcache-3.0.5.tgz 
  3. cd memcache-3.0.5 
  4. ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir 
  5. make && make install 

安装完成后,提示

 
  
  1. Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/ 

配置php.ini文件

修改extension_dir:

 
  
  1. extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/" 

添加一行以便加载memcache扩展:extension=memcache.so

 
  
  1. extension=memcache.so 

验证PHP中是否成功加载memcache扩展

 
  
  1. [root@test /]# php -m 
  2. [PHP Modules] 
  3. Core 
  4. ctype 
  5. curl 
  6. date 
  7. dom 
  8. eAccelerator 
  9. ereg 
  10. fileinfo 
  11. filter 
  12. hash 
  13. iconv 
  14. json 
  15. libxml 
  16. mcrypt 
  17. memcache 
  18. mysql 
  19. mysqli 
  20. pcre 
  21. PDO 
  22. pdo_sqlite 
  23. Phar 
  24. posix 
  25. Reflection 
  26. session 
  27. SimpleXML 
  28. SPL 
  29. SQLite 
  30. sqlite3 
  31. standard 
  32. tokenizer 
  33. xml 
  34. xmlreader 
  35. xmlwriter 
  36. zlib 
  37.  
  38. [Zend Modules] 
  39. eAccelerator 

17行处,有memcahe,正确加载

后续:memcached基本配置

启动memcached 服务端程序:

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

各个参数的含义:

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

PS:memcached 常用方法:

 
  
  1. kill `cat /tmp/memcached.pid` 
  2.  
  3. 获取运行状态 
  4.  
  5. echo stats | nc 192.168.0.122 11200 
  6. watch “echo stats | nc 192.168.0.122 11200 ” (实时状态) 
  7.  
  8. 快速清空 
  9.  
  10. echo “flush_all” | nc 192.168.0.122 11200 
  11.  
  12. 其他工具 
  13. http://code.sixapart.com/svn/memcached/trunk/server/scripts/memcached-tool