三个区别

当你听到memcache与memcached时把它当做是一个东东就好了,尽管它们存在区别,但是这并不影响你对它们的运用及理解。

“Memcache”它是一个自由和开放源代码、高性能、分配的内存对象缓存系统,即该系统名称为“Memcache”;

“Memcached”它是该系统的主程序文件,以守护程序方式运行于一个或多个服务器中(分布式),随时接受客户端的连接操作,使用共享内存存取数据;

“Memcachedb”它是新浪2007年的项目,在Memcached的基础上开发出来了,它与Memcache不同的是它提供了数据持久化存储

memcached 安装

  由于memcached安装时,需要使用libevent类库,所以先安装libevent

  libevent下载网址:http://www.monkey.org/~provos/libevent/

  本手册中下载的是 libevent-1.4.8-stable.tar.gz版本安装步骤如下:

  1. 解压缩

  tar xzfv libevent-1.4.8-stable.tar.gz

  2. 进入到 libevent-1.4.8-stable目录

  cd libevent-1.4.8-stable

  3. 编译,安装

  ./configure

  make

  make install

  注:默认安装到/usr/local/lib/ 目录

  接下来,安装memcached

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

  本手册中下载的是 memcached-1.2.6.tar.gz版本

  安装步骤如下:

  1. 解压缩

  tar xzfv memcached-1.2.6.tar.gz

  2. 进入到 memcached-1.2.6目录

  cd memcached-1.2.6

  3. 编译,安装

  ./configure --prefix=/local/memcached

  make

  make install

  安装完成后,会在 /local/memcached 出现 bin和share目录

  进行 bin目录,启动 memcache

  方法如下:

  ./memcached -d -u nobody -m 512 127.0.0.1 -p 11211

  此时,会报一个异常

  error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory

  原因是找不到libevent-1.4.so.2类库,解决办法如下:

  使用LD_DEBUG=help ./memcached -v来确定 加载的类库路径,方法如下:

  LD_DEBUG=libs ./memcached -v 2>&1 > /dev/null | less

  则系统会显示:

  <!-- <br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /> <br /> -->linux:/local/memcached/bin # LD_DEBUG = libs ./memcached -v  2 >& 1  > /dev/null | less

  20421 :     find library = libevent- 1.4 .so .2 ;  searching

  20421 :      search cache = /etc/ld.so.cache

  20421 :      search path = /lib/tls/i686/sse2:/lib/tls/i686:/lib/tls/sse2:/lib/tls:/lib/i686/sse2:/lib/i686:/lib/sse2:/lib:/usr/lib/tls/i686

  /sse2:/usr/lib/tls/i686:/usr/lib/tls/sse2:/usr/lib/tls:/usr/lib/i686/sse2:/usr/lib/i686:/usr/lib/sse2:/usr/lib          (system search path)

  20421 :       trying file = /lib/tls/i686/sse2/libevent- 1.4 .so .2

  20421 :       trying file = /lib/tls/i686/libevent- 1.4 .so .2

  20421 :       trying file = /lib/tls/sse2/libevent- 1.4 .so .2

  20421 :       trying file = /lib/tls/libevent- 1.4 .so .2

  20421 :       trying file = /lib/i686/sse2/libevent- 1.4 .so .2

  20421 :       trying file = /lib/i686/libevent- 1.4 .so .2

  20421 :       trying file = /lib/sse2/libevent- 1.4 .so .2

  20421 :       trying file = /lib/libevent- 1.4 .so .2

  20421 :       trying file = /usr/lib/tls/i686/sse2/libevent- 1.4 .so .2

  20421 :       trying file = /usr/lib/tls/i686/libevent- 1.4 .so .2

  20421 :       trying file = /usr/lib/tls/sse2/libevent- 1.4 .so .2

  20421 :       trying file = /usr/lib/tls/libevent- 1.4 .so .2

  20421 :       trying file = /usr/lib/i686/sse2/libevent- 1.4 .so .2

  20421 :       trying file = /usr/lib/i686/libevent- 1.4 .so .2

  20421 :       trying file = /usr/lib/sse2/libevent- 1.4 .so .2

  20421 :       trying file = /usr/lib/libevent- 1.4 .so .2

  20421 :

  ./memcached: error while loading shared libraries: libevent- 1.4 .so .2 : cannot open shared object file: No such file or directory

  我们看到,memcached会到很多地方去找,所以根据其它求,我们只需建一个软链接,指定到我们安装的类库上即可

  方法如下:

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

  现在可以正常启动memcached了

  ./memcached -d -u nobody -m 512 127.0.0.1 -p 11211

  到这里,看到memcached已经启动,说明安装成功。

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

  # kill `cat /tmp/memcached.pid`

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

  memcache启动参数说明:

  -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

memcachedb 安装

1. 先安装libevent
    tar zxvf libevent-1.2.tar.gz
    cd libevent-1.2
    ./configure –prefix=/usr
    make
    make install

2.测试libevent是否安装成功
    ls -al /usr/lib | grep libevent

3.安装Berkeley Db
     tar -zxvf db-4.6.19.tar.gz
     cd db-4.6.19/build_unix/

../dist/configure
    make && make install
    #如果没有指定特殊安装路径,编译完成,需要将Berkeley Db运行库的路径添加到系统配置里面
    echo "/usr/local/BerkeleyDB.4.6/lib/" >> /etc/ld.so.conf
    #重载系统Ld运行库
    ldconfig

4.安装memcachedb,同时需要安装中指定libevent的安装位置
    cd /tmp
    tar -zxvf memcachedb-1.0.3.tar.gz
    cd memcachedb-1.0.3
    ./configure –with-libevent=/usr
    make
    make install
    安装完成后会把memcachedb放到 /usr/local/bin/memcachedb

5.测试是否成功安装memcachedb
    ls -al /usr/local/bin/mem*
6.启动memcachedb
    memcachedb -p 11212 -d -r -u root -l localhost  -H /data/mdb_11212 -N -P /tmp/memcachedb.pid
7.如查报Berkeley Db的文件找不到的可以加上下面这句话
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/BerkeleyDB.4.6/lib

memcached 自己操作安装记录

说明:使用nginx+memcached,实现请求转发+session共享
操作:
1)下载tomcat lib的依赖包 ,修改防火墙,添加端口 8280 11211
2)下载memcached的依赖包 # yum install libevent-devel [libevent-1.4.13-4.el6.x86_64]
3)下载memcached,因为goole问题,使用最新版本 # wget http://memcached.org/latest [memcached-1.4.20.tar.gz]
安装: wget http://memcached.org/latest
tar -zxvf memcached-1.x.x.tar.gz
cd memcached-1.x.x
./configure --prefix=/cssdata/memcached && make && make test && sudo make install
4)修改nginx配置,做转发,设置同上面两个相同,重启nginx
5)修改 tomcat/conf/context.xml (这样比较好)
####################################################################################
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:ip号:11211"
sticky="false"
lockingMode="auto"
sessionBackupAsync="false"
sessionBackupTimeout="180000"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
####################################################################################

6)启动 /cssdata/memcached/bin/memcached -d -m 512 -u root -l 172.17.230.104 -p 11211 -c 10000
7)查看启动进程 ps -ef|grep memcached
8)重启两个tomcat,可登录,操作:关闭tomcat1,继续访问正常,开启tomcat1,关闭tomcat2,继续访问正常;
9) 验证
1)开启tomcat1,关闭tomcat2,此时输入tomcat1的验证码,不点击登录按钮,关闭tomcat1,开启tomcat2,此时点击按钮,成功登录
2)开启tomcat2,关闭tomcat1,此时输入tomcat1的验证码,不点击登录按钮,关闭tomcat2,开启tomcat1,此时点击按钮,成功登录

linux_memcached_memcachedb的更多相关文章

随机推荐

  1. IntegrityError错误

    Python插入数据库提交失败,一直走IntegrityError错误,没打印错误信息(一定注意编码规范,记住打印错误信息),以为插不进去,弄了好久,最后打印了错误信息 (sqlite3.Integr ...

  2. ios实用wifi分析仪——AirPort

    AirPort(wifi分析仪) android系统上免费的wifi分析仪很多,但是当我在AppStore上搜索时,找了半天也没找到想要的,后来还是问前辈才知道一款非常好用的app——AirPort, ...

  3. AUPE学习第八章------进程控制

    每个进程都有一个非负整形表示的唯一进程ID. init进程是一号进程,是第一个用户态的进程.它负责内核启动以后启动一个unix系统, 它读取的配置文件一般在/etc/rc*./etc/inittab. ...

  4. 由Tencent://Message协议想到的一个解决方案

    参考网址:http://www.cnblogs.com/phinecos/archive/2009/03/06/1404951.html 源代码下载:http://files.cnblogs.com/ ...

  5. 用html5的canvas生成图片并保存到本地

    原文:http://www.2cto.com/kf/201209/156169.html 前端的代码: [javascript]  function drawArrow(angle)  {      ...

  6. SQL SERVER 2005如何建立自动备份的维护计划

    SQL Server 2005中可以使用维护计划来为数据库自动备份,减少数据库管理员的工作负担.其使用方法如下: (1)启动[sql server Management Studio],在[对象资源管 ...

  7. C:冒泡排序

    冒泡排序 C语言在运行的时候,不会帮我们检查数组的下标. 冒泡排序:有n个数字,需要进行 n - 1 趟比较大小(元素的个数减去 1).外层循环 for( int i = 0; i < coun ...

  8. 移动端轮播图插件(支持Zepto和jQuery)

    一. 效果图 二. 功能介绍 1. 支持图片自动轮播和非自动轮播 2. 支持点击和滑动. 三. 简单介绍 代码都有注释,逻辑简单,不做更多赘述. 1. 在你的html中添加一行. <sectio ...

  9. FLEX4中的Panel如何实现带自定义图标和按钮

      做过flex开发的程序员都知道,使用flex3中的panel自定义按钮很容易,而且flex3的panel有icon属性.但是flex4的中大部分的控件与flex3中的控件实现方式有很大的变化,同是 ...

  10. CMSIS Example - Mail and Message

    /*---------------------------------------------------------------------------- * RL-ARM - RTX *----- ...