background image

PHP 入门:Linux 下安装 memcacheq(mcq)全过程

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:

其中 libevent 如果你安装过 memcached 就已经安装了,如果不确定,就检查一下吧
1. 先检查 libevent, libevent-devel

 

是否已经安装: rpm -qa|grep libevent 输出中必须包含

libevent, libevent-deve, 

 

如果缺失,使用以下命令安装:

yum install libevent yum 
install libevent-devel
注意事项:libevent, libevent-devel 优先使用 yum 安装源,光盘镜像中的 rpm 包安装,这样
稳定性和兼容性可得到保证,网上流传的使用源码安装 libevent 的方法会有问题,因为很
可能系统已经安装 libevent, 

 

再使用源码安装, 必然导致冲突,造成意外问题,所以一定

要使用上述命令检查系统是否已经安装相应的库