zoukankan      html  css  js  c++  java
  • 分布式内存对象缓存系统Memcached-Linux下使用

    Linux下Memcached的使用

    1.       安装文件下载

    1.1下载memcached服务器端安装文件

    版本: memcached-1.4.2.tar.gz

    下载地址:http://www.danga.com/memcached/download.bml

    1.2下载libevent

    memcached需要用到socked,依赖此安装文件

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

    2.       安装

    2.1 确认是否已经安装了libevent

    一般情况下linux系统可能默认已经安装libevent,可以通过以下命令确认是否已经安装

    执行命令:rpm -qa|grep libevent查看系统是否带有该安装软件

    如果有执行以下命令删除:rpm -e libevent-1.1a-3.2.1 --nodeps(由于系统自带的版本旧,忽略依赖删除)

     

    2.2    安装libevent:

    分别把memcached和libevent下载回来,放到/tmp目录下# tar zxvf libevent-1.2.tar.gz。安装文件拷贝完成后进行安装操作,执行以下命令,命令中的文件夹名称和安装软件名称根据实际情况修改

    # tar zxvf libevent-1.2.tar.gz

    # cd libevent-1.2

    # ./configure –prefix=/usr

    # make

    # make install

    测试libevent是否安装成功

    执行命令,# ls -al /usr/lib | grep libevent,出现下图,则说明安装成功

    或者执行命令#cd /usr/local/libevent/lib,检查如果有libevent-1.3c.so.1、libevent-1.3c.so.1.0.3、libevent.a、libevent.la、ibevent.so这几个文件存在,说明安装成功

    2.3安装memcached

    安装memcached,同时需要安装中指定libevent的安装位置:

    # cd /tmp

    # tar zxvf memcached-1.2.0.tar.gz

    # cd memcached-1.2.0

    # ./configure –with-libevent=/usr

    # make

    # make install

    测试是否成功安装memcached

    执行命令# ls -al /usr/local/bin/mem*,出现以下界面则说明安装成功

    或者执行命令#cd /usr/local/memcached/bin,如果memcached、memcached-debug这2个文件存在,说明安装成功

    3.       启动Memcached服务

    3.1启动Memcache的服务器端

    # /usr/local/bin/memcached -d -m 10 -u root -l 192.168.141.64 -p 12000 -c 256 -P /tmp/memcached.pid

    或者:

    ./memcached -help

    ./memcached -d -m 1024 -u root -p 11211 -c 1024 -p /tmp/memcached.pid 

    启动参数说明:

    -d选项是启动一个守护进程(也可以启动多个守护进程,但端口不能重复)

    -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB

    -u是运行Memcache的用户,我这里是root

    -l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200

    -p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口

    -c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定

    -P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid

    3.2测试Memcached

     [root@localhost /]# telnet 192.168.141.64 12000

    Trying 192.168.141.64...

    Connected to 192.168.141.64 (192.168.141.64).

    Escape character is '^]'.

    set key1 0 60 4

    zhou

    STORED

    get key1

    VALUE key1 0 4

    至此Memcached安装成功! 

    3.3结束Memcache进程

    # kill `cat /tmp/memcached.pid`

    3.4把Memcached服务加载到Linux的启动项中

    万一机器断电系统重启.那么Memcached就会自动启动了。

    假如启动Memcache的服务器端的命令为:

    # /usr/local/bin/memcached -d -m 10 -u root -l 192.168.141.64 -p 12000 -c 256 -P /tmp/memcached.pid,想开机自动启动的话,只需在/etc/rc.d/rc.local中加入一行,下面命令/usr/local/memcached/bin/memcached -d -m 10 -p 12000 -u apache -c 256 

    上面有些东西可以参考一下:即,ip不指定时,默认是本机,用户:最好选择是:apache 或 deamon,这样,也就是属于哪个用户的服务,由哪个用户启动。

    3.5Memcached说明

    1)Memcached 操作:

    telnet localhost 11334

    set foo 0 0 3

    bar 

    STORED

    get foo

    VALUE foo 0 3

    Bar

    quit

    2)Memcache命令:

    存储命令: set/add/replace/append/prepend/cas 

    获取命令: get/gets

    其他命令:delete/stats等

    3)Shell操作memcache

    (1)数据存储(假设key为foo,value为123)

       printf "set foo 0 0 3 123 " | nc 127.0.0.1 11334 

       STORED

    (2)数据取回(假设key为foo)

       printf "get foo " | nc 127.0.0.1 11334

       VALUE foo 0 3

       123

       END

    (3)数值增加1(假设key为foo,并且value为正整数)

       printf "incr foo 1 " | nc 127.0.0.1 11334 

       124

    (4)数值减少3(假设key为foo,并且value为正整数)

       printf "decr foo 3 " | nc 127.0.0.1 11334

       121

    (5)数据删除(假设key为foo)

       printf "delete foo " | nc 127.0.0.1 11334 

       DELETED

    (6)查看Memcached状态

       printf "stats " | nc 127.0.0.1 11334 

    STAT pid 22563

       STAT uptime 90706

    (7)模拟top命令,查看Memcached状态:

       watch "printf 'stats ' | nc 127.0.0.1 11334" 

        watch "echo stats | nc 127.0.0.1 11334"

    4.       常见问题

    4.1启动memcached时经常不能发现libevent.so

    可以通过以下命令检查:

       进入/usr/local/memcached-1.4.2/bin目录

       LD_DEBUG=help ./memcached -v

       LD_DEBUG=libs ./ memcached -v

       解决方法:

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

    4.2如果启动Memcached服务报错

    安装完成后的memcached在 /usr/local/bin/memcached,这时运行memcached -m 500 -p 11333, 有可能会出现:

    memcached:: error while loading shared libraries: libevent-1.2.so.1: cannot open shared object file: No such file or directory; 这说明没有找到文件:libevent-1.2.so.1

    解决方案:

    [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服务了。

    5.       参考文档

    1)http://blog.163.com/zqy216_2008/blog/static/41193718201071111421528/

    2)ttp://www.cnblogs.com/zgx/archive/2011/08/10/2134097.html

    3)http://my.oschina.net/flynewton/blog/9694

    4)http://blog.csdn.net/zj7758/article/details/6200641

    5)http://www.iteye.com/topic/1123037

    6)http://www.iteye.com/wiki/blog/1067387

  • 相关阅读:
    java中的上转型对象
    java工程项目里,在一个包里面,不能出现同名的类名,这问题是刚接触java才会遇到的,特别是新手一般都没有建立包,而是使用默认的,易出现同名的类名,导致eclipse提示错误
    接口作为参数,不同的接口调用不同的方法,例如:输出“I love Game”或输出“我喜欢游戏”
    JavaScript--原型链
    JavaScript--clientX,clientY、pageX,pageY、offsetLeft,offsetTop/offsetWidth,offsetHeight、scrollLeft,scrollTop/scrollWidth,scrollHeight、clientHeight,clientWidth区别
    JavaScript--结合CSS变形、缩放能拖拽的登录框
    JavaScript--放大镜
    JavaScript--返回顶部方法:锚链接、行内式js写法、外链式、内嵌式
    JavaScript--封装好的运动函数+旋转木马例子
    JavaScript--漏写var却还能使用标签
  • 原文地址:https://www.cnblogs.com/hfclytze/p/3613861.html
Copyright © 2011-2022 走看看