linux(Centos)上memcacheq成功安装及使用

标签: linux centos memcacheq | 发表时间:2014-08-23 00:07 | 作者:zhanjianshinian
出处:http://blog.csdn.net

一:安装memcached

1.下载memcached包
    下载地址:http://www.memcached.org (最新包就在首页,点击下载就OK)
    解压包:# tar -zxvf memcached-1.4.13.tar.gz (根据自身的情况解压到目录)
    进入目录:# cd memcached-1.4.13

2.安装libevent    
    检查一下有没有安装libevent: ls -al /usr/lib |grep libevent
    如果没有就安装libevent ,下载地址:http://www.libevent.org (首页 Download–Stable releases)
    解压:# tar -zxvf libevent-***-.tar.gz
          #cd libevent-***-
          #./configure --prefix=/usr
          #make && make install
    安装完检测下  ls -al /usr/lib |grep libevent
    lrwxrwxrwx   1 root root        21 02-06 20:26 libevent-1.4.so.2 -> libevent-1.4.so.2.1.3
    .................................
    -rw-r--r--   1 root root     11838 04-13 14:03 libevent_pthreads.a    
    -rwxr-xr-x   1 root root       996 04-13 14:03 libevent_pthreads.la
    lrwxrwxrwx   1 root root        30 04-13 14:03 libevent_pthreads.so -> libevent_pthreads-2.0.so.5.1.6
    lrwxrwxrwx   1 root root        21 04-13 14:03 libevent.so -> libevent-2.0.so.5.1.6
    
3.安装memcached
    预安装:#./configure --prefix=/usr/local/memcached --with-libevent=/usr
        注意:在没有安装libevent的情况下,会报错( If it's already installed, specify its path using --with-libevent=/dir/);
    编译并且安装:# make && make install
    OK安装成功.
    
    启动memcached:
            # /usr/local/memcached/bin/memcached -l 192.168.1.144 -d -p 11211 -u nobody -m 1024
            说明:上面的命令中-d表示用 daemon 的方式启动 memcached,-l和-p组合表示监听在 192.168.1.144 的 11212 端口上(如果不用-p指定端口号,则memcached将运行在11211端口    上),-u表示运行用户为 nobody,-m表示为其分配1024MB 的内存。
    
    连接 memcached: # telnet 192.168.1.144 11211
    到这里 memcached就已经安装好了。

增加到开机启动
    # vi /etc/rc.local
        增加:
            /usr/local/memcached/bin/memcached -l 192.168.1.144 -d -p 11211 -u nobody -m 1024

二:安装memcacheq
1.下载memcacheq包
    下载地址:http://code.google.com/p/memcacheq/downloads/list
    解压包:# tar -zxvf memcacheq.0.2.tar.gz (根据自身的情况解压到目录)
    进入目录:# cd memcacheq-0.2.0
    
2.安装 BerkeleyDB
    下载地址:http://www.oracle.com/technetwork/products/berkeleydb/downloads/index.html

下载地址请求:wget wget http://download.oracle.com/berkeley-db/db-5.3.15.tar.gz  (成功)


    解压包:# tar -zxvf db-5.3.15.tar.gz (根据自身的情况解压到目录)
    进入目录:# cd db-5.3.15
              # cd build_unix
              #../dist/configure --prefix=/usr/local/BerkeleyDB.5.3
              # make && make install
              #vi /etc/ld.so.conf
                增加:
                /usr/local/lib
                /usr/local/BerkeleyDB.5.3/lib
              #vi /etc/profile
                增加
                export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/local/BerkeleyDB.5.3/lib

3.安装memcacheq (注: 下文中的5.3是berkeleyDB的版本  请根据实际情况操作)
    预安装:./configure --prefix=/usr/local/memcacheq --enable-threads --with-libevent=/usr/local/libevent
        注意:在没有安装BerkeleyDB的情况下,会报错( configure: error: cannot find libdb.so in /usr/local/BerkeleyDB.5.3/lib);


我的提示configure: error: cannot find libdb.so in /usr/local/BerkeleyDB.5.3/lib报错,我的解决方法:
    装berkeley-db
wget http://download.oracle.com/berkeley-db/db-4.7.25.tar.gz
tar zxf db-4.7.25.tar.gz
cd db-4.7.25/build_unix/
../dist/configure
make
make install




#编译完成,将Berkeley Db运行库的路径添加到系统配置里面
echo "/usr/local/BerkeleyDB.4.7/lib/" >> /etc/ld.so.conf
ldconfig




    测试:/usr/local/memcacheq/bin/memcachq -h
            运行报:
            memcacheq: error while loading shared libraries: libdb-5.3.so: cannot open shared object file: No such file or directory
        解决方法:ln -s /usr/local/BerkeleyDB.5.3/lib/libdb-5.3.so /usr/lib/libdb-5.3.so


     连接:/usr/local/memcacheq/bin/memcacheq  -d -r -uroot -p12002 -H /var/mcq/data -N -R -v -L 1024 -B 1024 > /var/mcq/logs/mq_error.log 2>&1


其中过程遇到了很多问题,例如动态库位置,环境变量


inux上启动Memcache报错:

Shell代码   收藏代码
  1. [root@localhost memcached]# ./bin/memcached -d -m 2048 -p 11211 -u root  
  2. ./bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory  

原因一般有两个, 一个是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对, 遇到这种情况那就去网上下载并安装上即可.

另外一个原因就是已经安装了该共享库, 但执行需要调用该共享库的程序的时候, 程序按照默认共享库路径找不到该共享库文件.

 

因为我已经安装了libevent,所以应该是程序按照默认共享路径库去找,但是没有找到导致的。

 

首先使用find命令找到libevent-1.4.so.2文件在哪儿

Shell代码   收藏代码
  1. [root@localhost memcached]# find /usr -name libevent-1.4.so.2  
  2. /usr/libevent/lib/libevent-1.4.so.2 

根据debug日志可以看到,程序只会去/lib 和/usr/lib下去寻找需要的共享链接库。

而我的libevent是安装在/usr/libevent/lib/下,所以memcache启动的时候并不知道该去这下面找,所以会报错

 

所以安装共享库后要注意共享库路径设置问题, 如下:

1) 如果共享库文件安装到了/lib或/usr/lib目录下, 那么需执行一下ldconfig命令

         ldconfig命令的用途, 主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下, 搜索出可共享的动态链接库(格式如lib*.so*), 进而创建出动态装入程序(ld.so)所需的连接和缓存文件. 缓存文件默认为/etc/ld.so.cache, 此文件保存已排好序的动态链接库名字列表. 

 

2) 如果共享库文件安装到了/usr/local/lib(很多开源的共享库都会安装到该目录下)或其它"非/lib或/usr/lib"目录下, 那么在执行ldconfig命令前, 还要把新共享库目录加入到共享库配置文件/etc/ld.so.conf中, 如下:

Shell代码   收藏代码
  1. [root@localhost memcached]# cat /etc/ld.so.conf  
  2. include ld.so.conf.d/*.conf  

如上所示:/etc/ld.so.conf配置文件中内容只有一行,

ld.so.conf.d/*.conf的意思就是包含ld.so.conf.d/目录下以.conf为后缀的文件

所以我们可以在/etc/ld.so.conf.d目录下新建一个libevent.conf的配置文件,然后把libevent安装路径配置好

我的libevent内容如下:

Shell代码   收藏代码
  1. [root@localhost ld.so.conf.d]# cat libevent.conf  
  2. /usr/libevent/lib  

配置完后执行以下ldconfig命令

Shell代码   收藏代码
  1. [root@localhost ~]#ldconfig   

3) 如果共享库文件安装到了其它"非/lib或/usr/lib" 目录下,  但是又不想在/etc/ld.so.conf中加路径(或者是没有权限加路径). 那可以export一个全局变量LD_LIBRARY_PATH, 然后运行程序的时候就会去这个目录中找共享库.

     LD_LIBRARY_PATH的意思是告诉loader在哪些目录中可以找到共享库. 可以设置多个搜索目录, 这些目录之间用冒号分隔开. 比如安装了一个mysql到/usr/local/mysql目录下, 其中有一大堆库文件在/usr/local/mysql/lib下面, 则可以在.bashrc或.bash_profile或shell里加入以下语句即可:

export LD_LIBRARY_PATH=/usr/local/mysql/lib:$LD_LIBRARY_PATH

一般来讲这只是一种临时的解决方案, 在没有权限或临时需要的时候使用.


启动

/usr/local/memcacheq/bin/memcacheq  -d -r -uroot -p12002 -H /var/mcq/data -N -R -v -L 1024 -B 1024 > /var/mcq/logs/mq_error.log 2>&1




附带介绍ruby相关的安装:
   Starling是一个支持MemCache协议的轻量级持久化服务器。Starling是让创建网络访问队列或者多个队列异常简单,也就是说多点和多台机器间的异步工作进程。它是著名微博客网站Twitter开发用来处理大量的队列消息,以及保持服务的响应。Starling已经在生产环境中使用,不仅是Twitter在使用,FiveRuns同样在使用。FiveRuns甚至还根据自己的应用做了改进 ,他们认为网站速度快了很多.
   这是一个支持memcache协议的轻量级持久化服务器,因此使用php/perl/ruby/java等多种客户端都没问题,可以将较慢的处理逻辑通过消息队列放在后台处理,同时也支持多点分布式处理。
   由于starling是目前twitter在生产环境中运行的,经过实践检验过,稳定性应该不成问题。



安装:
   1.安装linux下的开发工具包,最好使用red hat的添加删除程序安装.
 (1)在可视化窗口下载打开"添加删除程序",找到"开发->开发工具"打钩,更新.插入 对应的linux安装盘.
   2.安装ruby和ruby gem
 (1)安装钱的准备
 检查系统是否已经安装了 ruby,
 #rpm -qa | egrep '(ruby)|(irb)'
 如果已安装,而且不是你所要的版本,则需要先卸载她,如,
 #rpm -e ruby-docs-1.8.1-7.EL4.2 \
 ruby-1.8.1-7.EL4.2 \
 irb-1.8.1-7.EL4.2 \
 ruby-libs-1.8.1-7.EL4.2 \
 ruby-mode-1.8.1-7.EL4.2 \
 ruby-tcltk-1.8.1-7.EL4.2 \
 ruby-devel-1.8.1-7.EL4.2

 (2)安装 Ruby
 假设 Ruby 安装到 /usr/local/ruby
 #mkdir /usr/local/ruby
 #tar -zxvf ruby-1.8.4.tar.gz
 #cd ruby-1.8.4
 #./configure --prefix=/usr/local/ruby
 #make
 #make install


 (3)设置路径
 #vi /etc/profile
 在该文件中加入,
 RUBY_HOME=/usr/local/ruby
 PATH=$PATH:$RUBY_HOME/bin
 export RUBY_HOME PATH

 (4)检查是否安装成功
 重新登录,
 #ruby -v
 如果能显示 ruby 的版本信息(ruby 1.8.4 (2005-12-24) [i686-linux]),则说明已安装成功。

 (5)安装 Ruby Gems
 #tar -zxvf rubygems-0.9.0.tgz
 #cd rubygems-0.9.0
 #ruby setup.rb

我是用成功的方法是:yum install rubygems

 (6)检查是否安装成功
 #gem -v
 如果能显示 gem 的版本信息(0.9.0),则说明已安装成功。


本文参考来源: http://www.cnblogs.com/sunzy/archive/2012/04/13/2446234.html

http://blog.csdn.net/li_yang98/article/details/6208223等


作者:zhanjianshinian 发表于2014-8-22 16:07:51 原文链接
阅读:0 评论:0 查看评论

相关 [linux centos memcacheq] 推荐:

linux(Centos)上memcacheq成功安装及使用

- - CSDN博客推荐文章
一:安装memcached. 1.下载memcached包.     下载地址:http://www.memcached.org (最新包就在首页,点击下载就OK).     解压包:# tar -zxvf memcached-1.4.13.tar.gz (根据自身的情况解压到目录).     进入目录:# cd memcached-1.4.13.

centos linux 服务器安全

- - 操作系统 - ITeye博客
我们必须明白:最小的权限+最少的服务=最大的安全. 所以,无论是配置任何服务器,我们都必须把不用的服务关闭、把系统权限设置到最小话,这样才能保证服务器最大的安全. 下面是CentOS服务器安全设置,供大家参考. 一、注释掉系统不需要的用户和用户组. 注意:不建议直接删除,当你需要某个用户时,自己重新添加会很麻烦.

在CentOS Linux系统的VPS中架设VPN图解教程

- - 操作系统 - ITeye博客
转自:http://www.laoyao.cc/post/2821.html . 另参考:http://blog.sina.com.cn/s/blog_40881dbe010139tl.html   配置. 前篇文章跟大家介绍了什么是. 有很多朋友需要VPN,但是购买别人VPN服务来使用却又限速又限流量,而且不稳定,价格还比较高.

(总结)CentOS Linux下配置Oracle 11gR2为系统服务自动启动

- - 服务器运维与网站架构|Linux运维|互联网研究
PS:在Windows下安装完成Oracle 11gR2后,默认就开机自启动Oracle相关服务,但Linux下安装完后每次都得手动启动和关闭数据库(dbstart | dbshut)、监听器(lsnrctl)、控制台(emtcl). 如何把Oracle添加到Linux系统服务里开机自启动呢. 下面以CentOS 6.3为例详解,其他发行版一样通用.

[来自异次元] CentOS 6.0 正式版下载 – 最受瞩目的免费企业级 Linux 服务器操作系统

- Mencius - 异次元软件世界
        如果说 Ubuntu 是现今最受桌面用户欢迎的 Linux 操作系统,那么 CentOS 就是最受公司、企业、IDC等喜爱的 Linux 发行版了. 得益于 CentOS 极为出色的稳定性,目前在全球范围内,无数著名的网站均选用它作为操作系统. 那个,异次元的服务器也正是使用它.         CentOS 是基于 Red Hat Enterprise Linux (收费昂贵但口碑极佳) 的源代码再编译出来的免费版,继承了 Red Hat 优越的稳定性,而且又提供免费更新,因此在服务器提供商、中小型公司中装机量几乎是最大的一个 Linux.

CentOS配置RPMForge源

- - 启光博客
  之前以发过一篇Linux安装配置网易的第三方源的文章,不过网易源与CentOS自带的官方源中的软件有时候还是感觉不够多,特别是桌面版用户应该深有体会,这个时候你就需要RPMForge,RPMForge被CentOS社区认为是最安全也是最稳定的一个软件仓库,拥有10000多种的软件包.   呵呵,好像有点给RPMForge做广告的感觉.

centos 使用fedora源

- - C++博客_首页
可以从该处理下 http://fedoraproject.org/wiki/EPEL包.   http://dl.fedoraproject.org/pub/epel/ 目录下查找:.   http://dl.fedoraproject.org/pub/epel/6/x86_64/下.

centos 6.2 关闭 IPV6

- - CSDN博客系统运维推荐文章
在现在的Linux上IPv6已经在默认安装下被支持,但是对于一些对IPv6支持不是很好的应用服务器来说,开启了IPv6反而会影响服务器的网络性能,毕竟现在的网络交换设备不是IPv6的. 如何判断系统是否开了ipv6. 第二,也可以通过查看开启的端口. 既然确定开启了之后,那怎样才能关闭呢. 我用的是centos6.2 没有找到/etc/modprobe.conf 文件,所以我就直接vi了一个,并加了两行.

CentOS 6.0 正式发布

- Power - cnBeta.COM
CentOS 是一个企业级的 Linux 发行版本,它源于上游操作系统提供者免费公开的源代码. CentOS 完全遵守上游供应商的再发行政策,并且以百分之百的软件兼容性为目标. (CentOS 对组件的修改主要是去除上游供应商的商标及美工图. )CentOS 6.0 与以往的发行版本有很大改动. CentOS 6.0 是用一个较新的建设系统所建造出来的,而函数库亦被检定可兼容上游的二元档.

CentOS 7 网卡bond - 简书

- -
/etc/sysconfig/network-scripts/目录,修改ifcfg-em1和ifcfg-em2网口配置文件. 其中NAME与DEVICE修改成对应的网卡,随后创建bond网卡文件. ifcfg-bond0,内容如下:. 心跳口bond如法炮制,完成后重启network服务. systemctl restart network,发现无法正常重启,查看日志.