Linux下memcache的安装和启动、停止、重启

memcache是高性能,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。据说官方所说,其用户包括twitter、digg、flickr等,都是些互联网大腕呀。目前用memcache解决互联网上的大用户读取是非常流行的一种用法。

 停止和启动,暂时通过kill进程(ps -aux|grep memcached)来解决的。-d参数好像没用。

下载安装

下载了,我到了其官方(http://memcached.org/),目前最新的下载版本是1.4.5

还要再安装libevent这个软件,从官方(http://monkey.org/~provos/libevent/)下载,目前最新的稳定版是1.4.14。

下载后,将其上传到了/home/blue/下面

执行以下命令

复制代码
cd /home/blue
tar zxvf memcached-1.4.5.tar.gz
tar zxvf libevent-1.4.14b-stable.tar.gz
#安装libevent
cd libevent-1.4.14b-stable
./configure --prefix=/home/liuzhy/libevent-1.4.14b-stable
make
make install

#安装memcache
cd /home/blue/memcached-1.4.5
./configure --prefix=/home/blue/memcached-1.4.5 --with-libevent=/home/blue/libevent-1.4.14b
make 
make install 
复制代码

 

启动memcache服务

进入bin目录,执行:./memcached -d -m 1024 -u blue,但是系统说有一个共享库没有加载,共享库的名称为:libevent-1.4.so.2

首先要查看一下memcached 这个命令用到的链接库地址在哪儿。执行如下命令可以查看:

LD_DEBUG=libs /usr/local/memcached/bin/memcached -v

 

显示出memcache从哪些地方找libevent-1.4.so.2这个文件,所以,我们只有将libevent-1.4.so.2这个文件指定到上面任意一个目录即可。这里我们将其指定到/lib64/下面。做一个软连接即可。命令如下:

ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2

在启动一下memcache服务:./memcached -d -m 1024 -u blue就可以了

下面将memcached命令的参数罗伦如下,

复制代码
# /usr/local/bin/memcached -d -m 200 -u root -l 192.168.1.91 -p 12301 -c 1000 -P /tmp/memcached.pid
相关解释如下:
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,这里是200MB
-u是运行Memcache的用户,如果当前为 root 的话,需要使用此参数指定用户。
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.1.91
-p是设置Memcache监听的端口,我这里设置了12301,最好是1024以上的端口
-c选项是最大运行的并发连接数,默认是1024,这里设置了256
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid
停止Memcache进程:
# kill `cat /tmp/memcached.pid`
也可以启动多个守护进程,但是端口不能重复
复制代码

一开始说的“-d”参数需要进行进一步的解释

-d install 安装memcached
-d uninstall 卸载memcached
-d start 启动memcached服务
-d restart 重启memcached服务
-d stop 停止memcached服务
-d shutdown 停止memcached服务

检查服务:

1、查看启动的memcache服务:

netstat -lp | grep memcached

2、查看memcache的进程号(根据进程号,可以结束memcache服务:“kill -9 进程号”)

ps -ef | grep memcached 

 

 

memcache的运行状态可以方便的用stats命令显示。首先用telnet 127.0.0.1 11211这样的命令连接上memcache,然后直接输入stats就可以得到当前memcache的状态。这些状态的说明如下:
 
pidmemcache服务器的进程ID
uptime服务器已经运行的秒数
time服务器当前的unix时间戳
versionmemcache 版本
pointer_size当前操作系统的指针大小(32位系统一般是32bit)
rusage_user进程的累计用户时间
rusage_system进程的累计系统时间
curr_items服务器当前存储的items数量
total_items从服务器启动以后存储的items总数量
bytes当前服务器存储items占用的字节数
curr_connections当前打开着的连接数
total_connections从服务器启动以后曾经打开过的连接数
connection_structures服务器分配的连接构造数
cmd_getget命令(获取)总请求次数
cmd_setset 命令(保存)总请求次数
get_hits总命中次数
get_misses总未命中次数
evictions为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)
bytes_read总读取字节数(请求字节数)
bytes_written总发送字节数(结果字节数)
limit_maxbytes分配给memcache的内存大小(字节)
threads当前线程数
如果要清空memcache的items,常用的办法是什么?杀掉重启?如果有n台memcache需要重启怎么办?挨个做一遍?
很简单,假设memcached运行在本地的11211端口,那么跑一下命令行:
$ echo 'flush_all' | nc localhost 11211

具体命令见下一篇,memcache命令
[root@localhost awstats]# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
stats
STAT pid 1841
STAT uptime 1138
STAT time 1400664482
STAT version 1.4.4
STAT pointer_size 32
STAT rusage_user 0.007998
STAT rusage_system 0.006998
STAT curr_connections 10
STAT total_connections 13
STAT connection_structures 11
STAT cmd_get 2
STAT cmd_set 2
STAT cmd_flush 0
STAT get_hits 2
STAT get_misses 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 127
STAT bytes_written 106
STAT limit_maxbytes 1073741824
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT bytes 150
STAT curr_items 2
STAT total_items 2
STAT evictions 0
END

ERROR
get eeeea33
VALUE eeeea33 0 22
This is eeeea33 data!!
END

yum安装方法:

  1. 首先查看memcache的依赖库是否有安装,如果对这个有疑问可以参考php手册的memcache的安装需求说明

           命令如下:

                        查询: rpm -qa | grep libevent

                        安装:yum -y install libenent*

    PHP的Memcache扩展的安装和使用
    PHP的Memcache扩展的安装和使用
  2. 2

    安装memcached,相当于apache的httpd是用来启动memcache和管理memcache的

              命令如下:

                             yum -y install memcached

    PHP的Memcache扩展的安装和使用
    PHP的Memcache扩展的安装和使用
  3. 3

    接下来再安装memcache,这里我们不要考虑对别的包有什么依赖yum会帮我们解决的,这也是yum的强悍之处

             命令如下:

                            yum -y install php-pecl-memcache

    PHP的Memcache扩展的安装和使用
    PHP的Memcache扩展的安装和使用
  4. 4

    然后查看memcached的bin安装目录,启动memcache,相关参数的作用里面有详细说明

    PHP的Memcache扩展的安装和使用
    PHP的Memcache扩展的安装和使用
  5. 5

    然后简单的写一个memcache连接是否成功的测试代码测试一下看看是否成功,很不给面子没有显示出来我们要的效果

    PHP的Memcache扩展的安装和使用
    PHP的Memcache扩展的安装和使用
  6. 6

    下面说一下我的一般排错办法

               1.查看相关文件的权限时候设置正常

               2.查看linux的防火墙的设置

               3.动态查看apache的错误日志的提示信息

               4.查看linux的SELINUX的设置

    那下面就安按照这个思路去排错

    PHP的Memcache扩展的安装和使用
    PHP的Memcache扩展的安装和使用
    PHP的Memcache扩展的安装和使用
    PHP的Memcache扩展的安装和使用
  7. 7

    上面按照前三步的顺序调查问题仍然存在,最后的去看看SELINUX的设置了,其中你可以用tail -f error_log 去动态监测错误日志,但是这里从错误日志看不出来什么东西

             命令如下:

                            查看SELINUX的模式:getenforce

                            设置SELINUX的模式:setenforce 0

                            或者编辑这个文   :/etc/selinux/config

    最后重启查看效果,问题解决了!

    PHP的Memcache扩展的安装和使用
    PHP的Memcache扩展的安装和使用
    END

注意事项

  • 总结一下自己排错的方法,如果能办到大家十分荣幸
  • 此操作只针对Centos操作系统别的系统另论





  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值