MemcacheQ(消息队列)
来源:互联网 发布:php用来做什么的 编辑:程序博客网 时间:2024/06/06 03:51
原文地址:MemcacheQ(消息队列)作者:邓强
memcacheQ配置
什么是memcacheQ ?
memcacheQ是一个基于memcache协议、BDB持久数据存储、高性能轻量级队列服务程序。 特点是:
1.简单高效,基于memcache协议,这意味着只要客户端支持memcache协议即可使用。 2. 队列数据存储于BDB, 持久保存。3. 并发性能好。 4. 支持多条队列。
并发量较的web环境,特别是数据库写入操作过多的情景,使用队列可大大缓解因并发问题造成的数据库锁死问题。生产环境中使用效果非常好。
先决条件:
memcacheQ依赖于libevent,libevent-devel和BDB(BerkleyDB)
1. 先检查libevent, libevent-devel是否已经安装:
rpm -qa|greplibevent
输出中必须包含libevent, libevent-deve,如果缺失,使用以下命令安装: yum install libevent
yum installlibevent-devel
安装完毕再复查之:rpm -qa|grep libevent,确保安装正确。
注意事项:libevent,libevent-devel优先使用yum安装源,光盘镜像中的rpm包安装,这样稳定性和兼容性可得到保证,网上流传的使用源码安装libevent的方法会有问题,因为很可能系统已经安装libevent,再使用源码安装, 必然导致冲突,造成意外问题,所以一定要使用上述命令检查系统是否已经安装相应的库。
2.安装BerkleyDB
cd/usr/local/src
wgethttp://219.239.89.57/deploy/db-5.2.28.tar.gz tar zxvfdb-5.2.28.tar.gz cd db-5.2.28 cd build_unix ../dist/configuremake
makeinstall
3. 准备安装memcacheQ cd/usr/local/src
wgethttp://219.239.89.57/deploy/memcacheq-0.2.0.tar.gz tar zxvfmemcacheq-0.2.0.tar.gz
cdmemcacheq-0.2.0
修改configure文件,找到bdbdir="/usr/local/BerkeleyDB.4.7",修改为
bdbdir="/usr/local/BerkeleyDB.5.2",否则执行configure时会产生找不到BDB的错误。
./configure --prefix=/usr/local/memcacheqmake
makeinstall
至此,memcacheq安装成功
4. 启动说明
error while loading shared libraries:libdb-5.2.so: cannot open shared object file: No such file ordirectory
这是因为memcacheq无法找到bdb的共享库文件,按以下方法解决这个问题:
updatedb
locate libdb-5.2.so,输出:
/usr/local/BerkeleyDB.5.2/lib/libdb-5.2.so
/usr/local/src/db-5.2.28/build_unix/.libs/libdb-5.2.so
再看看memcacheQ是从哪里寻找libbdb-5.2.so文件的: ldd/usr/local/memcacheq/bin/memcacheq
linux-vdso.so.1 => (0x00007fff0ff1a000)
libm.so.6 => /lib64/libm.so.6(0x000000398ec00000) libdb-5.2.so => notfound
libevent-1.4.so.2 =>/usr/lib64/libevent-1.4.so.2
libc.so.6 => /lib64/libc.so.6(0x000000398e000000)
libpthread.so.0 =>/lib64/libpthread.so.0 (0x000000398e800000) libnsl.so.1 =>/lib64/libnsl.so.1 (0x0000003991800000) librt.so.1 =>/lib64/librt.so.1(0x000000398f400000)
libresolv.so.2 =>/lib64/libresolv.so.2 (0x0000003992800000)/lib64/ld-linux-x86-64.so.2(0x000000398dc00000)
我们发现memcacheq所有库的加载路径均为/lib64,但libbdb-5.2.so状态为not found, 知道这个信息后,我们为libdb-5.2.so建立相应符号链接即可: ln-s /usr/local/BerkeleyDB.5.2/lib/libdb-5.2.so /lib64/libdb-5.2.so
再运行/usr/local/memcacheq/bin/memcacheq -h,一切正常。 建立数据目录,用于memcacheQ保存数据: mkdir /data/memcacheq启动之
/usr/local/memcacheq/bin/memcacheq -d -l127.0.0.1 -A 8192 -H /data/memcacheq -B 65535 -N -R -uroot
参数说明:
-d :以后台服务方式运行
-l : 设置监听地址及端口(默认端口是22201) -A : 数据页大小 -H :数据保存目录
-B :队列中每条数据的最大长度(字节)
-N : 使用内存缓冲方式保存数据至磁盘,从而获得极高性能。若无此参数,性能会很差-R : 自动清理过期的日志
-u : 设置memcacheq进程账号
测试
telnet 127.0.0.1 22201stats
stats queuequit
若测试没有问题,将memcacheQ的启动命令加入到/etc/rc.local中。
本文摘自百度文库。http://wenku.baidu.com/view/12348721ccbff121dd368392.html
0 0
- MemcacheQ(消息队列)
- memcacheq安装与消息队列
- Memcache 持久化消息队列MemcacheQ
- 消息队列服务器 memcacheq的搭建
- 持久化消息队列之MEMCACHEQ
- php消息队列MemcacheQ 安装与使用
- Memcache 持久化消息队列MemcacheQ
- 分布式持久化消息队列memcacheq的安装部署
- 持久化消息队列memcacheq的安装配置
- PHP结合memcacheq消息队列解决并发问题
- PHP结合memcacheq消息队列解决并发问题
- 消息队列在项目中的使用(memcacheq)
- PHP结合memcacheq消息队列解决并发问题
- PHP结合memcacheq消息队列解决并发问题
- PHP结合memcacheq消息队列解决并发问题
- PHP结合memcacheq消息队列解决并发问题
- memcached,memcacheq队列的相关
- memcacheQ
- JS+JQ简单的表单失焦验证
- iOS,沙盒,做数据持久化的时候,有时候需要查看沙盒路径
- 关于SQL注入
- ThreadPoolExecutor使用和思考
- 大数据解决方案
- MemcacheQ(消息队列)
- 使用MySQL的开发者需了解的…
- 抢购功能的实现[PHP+MySQL]
- Linux中Redis的相关安装以及…
- MySQL常用DDL
- JQuery用法
- 简易的网站信息采集
- CI框架 应用本地…
- 微信公众平台的具体开发步骤…