• Linux安装Memcached服务


    环境:

      CentOS 6.4

      libevent-1.4.14b-stable

      memcached-1.4.21

     

    查看是否安装libevent
    [root@localhost ~]# rpm -qa |grep libevent

     

    一、下载Memcache服务器端

    memcache官网:http://memcached.org/

    libevent官网:http://www.monkey.org/~provos/libevent/

    Memcache用到了libevent这个库用于Socket的处理,所以必须先安装libevent.

    下载

     

    二、安装

    1、分别把memcached和libevent下载下来,放到 /tmp 目录下:
    [root@localhost /]# cd /tmp

    2、先安装libevent:
    [root@localhost tmp]# tar zxvf libevent-1.4.14b-stable.tar.gz
    [root@localhost libevent-1.4.14b-stable]# cd libevent-1.4.14b-stable
    [root@localhost libevent-1.4.14b-stable]# ./configure –prefix=/usr
    [root@localhost libevent-1.4.14b-stable]# make
    [root@localhost libevent-1.4.14b-stable]# make install

     

    3、测试libevent是否安装成功:
    [root@localhost libevent-1.4.14b-stable]#  ls -al /usr/lib | grep libevent

    还不错,都安装上了。

     

    4、安装memcached,同时需要安装中指定libevent的安装位置:
    [root@localhost libevent-1.4.14b-stable]# cd /tmp
    [root@localhost tmp]# tar zxvf memcached-1.4.21.tar.gz
    [root@localhost tmp]# cd memcached-1.4.21
    [root@localhost memcached-1.4.21]# ./configure –with-libevent=/usr
    [root@localhost memcached-1.4.21]# make
    [root@localhost memcached-1.4.21]# make install
    如果中间出现报错,请仔细检查错误信息,按照错误信息来配置或者增加相应的库或者路径。
    安装完成后会把memcached放到 /usr/local/bin/memcached 

     

    5、测试是否成功安装memcached:

    [root@localhost memcached-1.4.21]# ls -al /usr/local/bin/mem*
    -rwxr-xr-x. 1 root root 340316 Dec 12 14:41 /usr/local/bin/memcached

     

    三、启动Memcached服务

    1、启动Memcache的服务器端:
    # /usr/local/bin/memcached -d -m 10 -u root -l localhost -p 11211 -c 256 -P /tmp/memcached.pid

    不允许使用root用户启动服务,请以nobody用户执行

    # /usr/local/bin/memcached -d -m 1024 -u nobody -p 11211 

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

    2、如果要结束Memcache进程,执行:

    # kill `cat /tmp/memcached.pid`

    也可以启动多个守护进程,不过端口不能重复。

     

    四、测试Memcached

    本步骤需要安装telnet,如果下面步骤执行有问题,请参照:http://www.cnblogs.com/yangxia-test/p/4159891.html

    [root@localhost memcached-1.4.21]# telnet localhost 11211
    Trying ::1...
    Connected to localhost.
    Escape character is '^]'.

     

    至此Memcached安装成功!

     

    五、查看Memcached状态

    [root@localhost memcached-1.4.21]# telnet localhost 11211
    Trying ::1...
    Connected to localhost.
    Escape character is '^]'.
    stats
    STAT pid 3401        //memcache服务器的进程ID
    STAT uptime 1481      //服务器已经运行的秒数
    STAT time 1418368595    //服务器当前的unix时间戳
    STAT version 1.4.21      //memcache版本
    STAT libevent 1.4.14b-stable  //libevent版本
    STAT pointer_size 64      //当前操作系统的指针大小(32位系统一般是32bit,64就是64位操作系统)
    STAT rusage_user 0.014997  //进程的累计用户时间
    STAT rusage_system 0.022996   //进程的累计系统时间
    STAT curr_connections 10    //服务器当前存储的items数量
    STAT total_connections 12    //从服务器启动以后存储的items总数量
    STAT connection_structures 11  //服务器分配的连接构造数
    STAT reserved_fds 20
    STAT cmd_get 0    //get命令(获取)总请求次数
    STAT cmd_set 0    //set命令(保存)总请求次数  www.2cto.com  
    STAT cmd_flush 0    //flush命令请求次数
    STAT cmd_touch 0    //touch命令请求次数
    STAT get_hits 0    //总命中次数
    STAT get_misses 0  //总未命中次数
    STAT delete_misses 0  //delete命令未命中次数
    STAT delete_hits 0    //delete命令命中次数
    STAT incr_misses 0    //incr命令未命中次数
    STAT incr_hits 0    //incr命令命中次数
    STAT decr_misses 0    //decr命令未命中次数
    STAT decr_hits 0    //decr命令命中次数
    STAT cas_misses 0    //cas命令未命中次数
    STAT cas_hits 0    //cas命令命中次数
    STAT cas_badval 0  //使用擦拭次数
    STAT touch_hits 0  //touch命令未命中次数
    STAT touch_misses 0  //touch命令命中次数
    STAT auth_cmds 0  //认证命令处理的次数
    STAT auth_errors 0  //认证失败数目
    STAT bytes_read 13  //总读取字节数(请求字节数)
    STAT bytes_written 0  //总发送字节数(结果字节数)
    STAT limit_maxbytes 10485760 //分配给memcache的内存大小(字节)
    STAT accepting_conns 1    //服务器是否达到过最大连接(0/1)
    STAT listen_disabled_num 0     //失效的监听数
    STAT threads 4    //当前线程数
    STAT conn_yields 0     //连接操作主动放弃数目
    STAT hash_power_level 16
    STAT hash_bytes 524288
    STAT hash_is_expanding 0
    STAT malloc_fails 0
    STAT bytes 0     //当前存储占用的字节数
    STAT curr_items 0     //当前存储的数据总数
    STAT total_items 0  //启动以来存储的数据总数
    STAT expired_unfetched 0
    STAT evicted_unfetched 0
    STAT evictions 0    //为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)
    STAT reclaimed 0     //已过期的数据条目来存储新数据的数目
    STAT crawler_reclaimed 0
    STAT lrutail_reflocked 0
    END

     

    退出:quit或者ctrl + ] 然后在按q就行了。

     

    六、遇到的问题

    1、如果启动Memcached服务的时候遇到了

    /usr/local/bin/memcached: error while loading shared libraries: libevent-1.2.so.1: cannot open shared object file: No such file or directory;

    解决方案:

    [root@localhost bin]# LD_DEBUG=libs memcached -v 
    [root@localhost bin]# ln -s /usr/lib/libevent-1.2.so.1 /usr/lib64/libevent-1.2.so.1
    [root@localhost bin]# /usr/local/bin/memcached -d -m 100 -u root -p 12000 -c 1000 -P /tmp/memcached.pid
    [root@localhost bin]# ps -aux

    可以看到启动的Memcached服务了.

     

    2、把Memcached服务加载到Linux的启动项中.万一机器断电系统重启.那么Memcached就会自动启动了.

    假如启动Memcache的服务器端的命令为:
    # /usr/local/bin/memcached -d -m 10 -u root -l localhost -p 11211 -c 256 -P /tmp/memcached.pid容来自17jquery

    想开机自动启动的话,只需在/etc/rc.d/rc.local中加入一行,下面命令
    /usr/local/memcached/bin/memcached -d -m 10 -p 11211 -u apache -c 256 
    上面有些东西可以参考一下:即,ip不指定时,默认是本机,用户:最好选择是:apache 或 deamon
    这样,也就是属于哪个用户的服务,由哪个用户启动。

  • 相关阅读:
    Air-WIFI使用方法
    libeasy代码学习:一次简单的TCP请求处理流程
    log_pipe日志收集分析系统介绍
    asp.net 项目在 IE 11 下出现 “__doPostBack”未定义 的解决办法
    用命令行实现“一键休眠”
    C#几个经常用到的字符串的截取
    MYSQL存储过程怎么写
    如何用myeclipse和eclipse搭建安卓开发环境
    C#随机生成不重复字符串
    Inno setup 简单打包教程
  • 原文地址:https://www.cnblogs.com/-mrl/p/5080690.html
Copyright © 2020-2023  润新知