memcache的作用及安装


 

memcache常被用来加速应用程序的处理 关于memcache就不用多说了,就是a distributed memory object  caching system,既然是一个用来存东西的系统,那么一定要有个存放的地方吧,我们就叫它服务器端吧,然后谁把东西存放在上面就叫它客户端吧,那怎么放呢,肯定是 客户端-- 连接服务器端-- 把东西发送给服务器端-- 实现了东西的存放么,要去取的时候也是一样的,先连接,在取东西回来了。

安装之前采用yum 方式安装php 和httpd 并注意下面采用yum 方式安装php 应注意的问题  yum install php httpd

之前没用过 前一段时间公司需要用到memcache 在网上看了一下资料 自己就安装了一下 遇到的问题 也有记录 有不妥或者未详尽之处   望 大家指点

 

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 

 安装步骤

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.  usr/local/php/bin/phpize (生成编译环境./configure)

5.  这一步如果使用yum 安装的php 路径改为--with-php-config=/usr/bin/php-config

6.  ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir 

7.  make && make install 

安装完成后,提示

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

2.  Yum 安装的php 提示如下

3.  Installing shared extensions:     "/usr/lib64/php/modules"

 

配置php.ini文件

修改extension_dir:

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

2.  yum 安装配置文件如下

3.  extension_dir = "/usr/lib64/php/modules"

 

添加一行以便加载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  

2.  如果运行到一步报错提示Libaraies 没有 或者不能共享

   执行ldconfig (加载动态链接库) 

执行上面操作之前 最好执行这一步ldconfig –C | grep libevent 看看有没有

各个参数的含义:

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. 其他工具 

相关内容

    暂无相关文章