memcacheQ是一个单纯的分布式消息队列服务。

一,MEMCACHEQ的应用背景

Web应用中为什
么会需要消息队列?主要原因是由于在高并发环境下,由于来不及同步处理,请求往往会发生堵塞,比如说,大量的insert,update之类的请求同时到
达mysql,直接导致无数的行锁表锁,甚至最后请求会堆积过多,从而触发too 
manyconnections错误。通过使用消息队列,我们可以异步处理请求,从而缓解系统的压力。在Web2.0的时代,高并发的情况越来越常见,从
而使消息队列有成为居家必备的趋势,相应的也涌现出了很多实现方案,像Twitter以前就使用RabbitMQ实现消息队列服务,现在又转而使用
Kestrel来实现消息队列服务,此外还有很多其他的选择,比如说:ActiveMQ,ZeroMQ等。

上述消息队列的软件中,大多为了实现AMQP,STOMP,XMPP之类的协议,变得极其重量级,但在很多Web应用中的实际情况是:我们只是想找到一个缓解高并发请求的解决方案,不需要杂七杂八的功能,一个轻量级的消息队列实现方式才是我们真正需要的。

二,MEMCACHEQ的特性

1 简单易用
2 处理速度快
3 多条队列
4 并发性能好
5 与memcache的协议兼容。这就意味着只要装了memcache的extension就可以了,不需要额外的插件。

三,安装

MEMCACHEQ依赖于libevent和BerkleyDB。
BerkleyDB用于持久化存储队列的数据。 这样在MEMCACHEQ崩溃或者服务器挂掉的时候,
不至于造成数据的丢失。这一点很重要,很重要。

它的安装依赖于BerkeleyDB 和 libevent,所以要先安装这BerkeleyDB和libevent:

BerkeleyDB

  1. 下载软件包,http://download.oracle.com/berkeley-db/db-5.1.19.tar.gz
  2. tar zxvf db-5.1.19.tar.gz
  3. cd db-5.1.19/build_unix/
  4. ../dist/configure
  5. make
  6. sudo make install

libevent (需要1.4.x 或更高)

  1. 下载软件包:http://monkey.org/~provos/libevent-2.0.10-stable.tar.gz
  2. 解压缩后configure & make & make install

memcacheQ

  1. 下载软件包:http://memcacheq.googlecode.com/files/memcacheq-0.2.0.tar.gz
  2. 解压缩,cd进目录
  3. ./configure –with-bdb=/usr/local/BerkeleyDB.5.1 –with-libevent=/usr/local/lib –enable-threads
  4. make
  5. sudo make install

四,启动memcacheQ

  1. 使用memcacheq -h 的命令来查看命令行选项
  2. 启动memcacheq:memcacheq -d -r -H /data1/memcacheq -N -R -v -L 1024 -B 1024 > /data1/mq_error.log 2>&1

五,启动参数

memcacheq -d-r-H/data/memcacheq -N-R-v-L1024-u nobody &> \/data/memcacheq/error.log

解释一下:
-d 守护进程
-r Maximize core file limit
-v 详细输出
-u 以用户的身份来运行
-H BDB 文件的保存目录
-N Performance improvement
-R 太久的日志文件会被删除。
-L 日志缓存大小,默认是32K。 1024表示1024K。

其它参数:
-h help
-vv 更加详细的输出
不使用-d的话,输出会直接显示到控制台。

注:指定的用户必须有数据文件的读写权限,如这里的/data1/memcacheq和/data1目录.
可以使用”chown 用户名 目录” 的命令给目录授权.

六,关闭memcacheQ

使用ps命令查查memcacheQ的进程:ps -ef|grep wuf,然后直接将进程kill掉.

七,使用

使用以上命令启动mq后,(注意上面的-B参数表示messag的body长度不能超过1024 bytes),使用mq时只需要用到两个命令:set和get。完全可以像使用Memcache一样。

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

memcacheq: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory

安装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

转载于:https://blog.51cto.com/453891/835656

linux memcacheQ的安装与使用相关推荐

  1. mysql在linux下的安装

    mysql在linux下的安装 安装环境:系统是 centos6.5 1.下载 下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads ...

  2. 关于内网linux系统如果安装nodejs,npm,express,mongodb,forever等

    内网的linux系统要安装nodejs以及express等系列的框架,因为系统是局域网和互联网是物理隔离的,所以,没法像官网的安装教程那样直接install了,只能手动安装,这里已经我们自己的linu ...

  3. centos6.5 php5.2,Linux中PHP安装与配置(CentOS-6.5:php-5.2.13)

    1 PHP简介     PHP(PHP: Hypertext Preprocessor的缩写,中文名:"超文本预处理器")是一种通用开源脚本语言.语法吸收了C语言.Java和Per ...

  4. linux源码安装浏览器,Linux系统手动安装Firefox浏览器

    大多数Linux发行版都以Firefox作为默认的浏览器,并可以轻松地从软件库中安装.例如: Debian/Ubuntu: sudo apt-get install firefox Fedora: s ...

  5. linux查看msf安装目录,linux系统安装msf的过程详解

    还是自己写下安装过程吧! 我的服务器系统是 Aliyun linux 可能报错:Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-Metasploit 是 ...

  6. Linux环境Nginx安装多版本PHP

    关于Linux环境Nginx安装与调试以及PHP安装参考此文即可:http://blog.csdn.net/unix21/article/details/8544922 linux版本:64位Cent ...

  7. 关于一些Linux SVN的安装使用

    关于一些Linux SVN的安装使用 SVN简介 The goal of the Subversion project is to build a version control system tha ...

  8. Linux环境HBase安装配置及使用

    Linux环境HBase安装配置及使用 1. 认识HBase (1) HBase介绍 HBase = Hadoop database,Hadoop数据库 开源数据库 官网:hbase.apache.o ...

  9. Linux软件的安装,更新与卸载

    linux软件的安装,更新与卸载 Linux常见的安装为tar,zip,gz,rpm,deb,bin等.我们可以简单的分为三类. 第一:打包或压缩文件tar,zip,gz等,一般解压后即可,或者解压后 ...

最新文章

  1. R语言多因素有交互方差分析(Two-Way ANOVA)实战:拟合多因素有交互方差分析模型、分析不同分组的差异TukeyHSD、多因素有交互方差分析的结果总结
  2. 10种增强脑力的办法
  3. 【C++基础】模板参数与模板继承
  4. Tornado是为何物
  5. 拉起支付宝个人转账填备注_支付宝转错钱给别人,我居然要回来了!
  6. JAVA正则提取字符串中的日期
  7. MySQL5中文乱码解决5
  8. sharepoint SSP(shared services providers ) 配置
  9. 《RFID技术与应用》试题库(含答案)
  10. jenkins使用python plugin编写代码构建时报错:Caused: java.io.IOException: Cannot run program “python“
  11. .NET Standard中配置TargetFrameworks输出多版本类库
  12. 姜小白的python日记day2 变量和循环
  13. 2021年南京大学软件工程专硕考研初试410分(数学满分)总成绩第二上岸经验贴
  14. Maven中pom文件详解
  15. 关于华为的工作情况的一些解答
  16. 八戒致高翠兰的一封情书
  17. 静态英雄联盟轮播图布局
  18. 你的计算机由组织管理,某些设置由你的组织来管理
  19. DirectX11 Direct3D基本概念
  20. bga封装扇出_0.5间距BGA封装,怎么扇出啊

热门文章

  1. 实战系列-被面试官问到Feign原理
  2. JVM优化系列-JVM内存溢出的原因
  3. 如何管理kvm虚拟机的时钟源
  4. 南北非遗传承人齐聚北京 演绎非遗精巧
  5. Jquery自定义分页插件
  6. Collections.sort的两个方法
  7. JS判断两种格式的输入日期的正确性
  8. Java虚拟机-垃圾回收简介
  9. 少年,你知道怎么用一行代码解决分布式事务问题吗?
  10. PowerDesigner(三)-企业架构模型