memcacheq消息队列php,MemcacheQ 消息队列的安装和使用

简介

MemcacheQ 是一个基于轻量级消息队列服务器。新浪微博曾经大规模使用,它有几个特点

无与伦比的简单

非常快

支持多个队列

高并发性

与memcache协议兼容

准备

安装

libevent

tar xzf libevent-2.0.22-stable.tar.gz

cd libevent-2.0.22-stable

./configure

make && make install

ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5

BerkeleyDB

tar xzf db-6.1.23.tar.gz

cd db-6.1.23

cd build_unix

../dist/configure --prefix=/usr/local/BerkeleyDB.6.1

make && make install

memcacheQ

tar xzf memcacheq-0.2.0.tar.gz

cd memcacheq-0.2.0

./configure --enable-threads --with-bdb=/usr/local/BerkeleyDB.6.1

make

make install

测试是否安装成功

/usr/local/bin/memcacheq -h

-p TCP port number to listen on (default: 22201)

-U UDP port number to listen on (default: 0, off)

-s unix socket path to listen on (disables network support)

-a access mask for unix socket, in octal (default 0700)

-l interface to listen on, default is INDRR_ANY

-d run as a daemon

-r maximize core file limit

-u assume identity of (only when run as root)

-c max simultaneous connections, default is 1024

-v verbose (print errors/warnings while in event loop)

-vv very verbose (also print client commands/reponses)

-h print this help and exit

-i print license info

-P save PID in , only used with -d option

-t number of threads to use, default 4

--------------------BerkeleyDB Options-------------------------------

-m in-memmory cache size of BerkeleyDB in megabytes, default is 64MB

-A underlying page size in bytes, default is 4096,

-H

-L log buffer size in kbytes, default is 32KB

-C do checkpoint every seconds, 0 for disable, default is 5 minutes

-T do memp_trickle every seconds, 0 for disable, default is 30 seconds

-S do queue stats dump every seconds, 0 for disable, default is 30 seconds

-e percent of the pages in the cache that should be clean, default is 60%

-E how many pages in a single db file, default is 16*1024, 0 for disable

-B specify the message body length in bytes, default is 1024

-D do deadlock detecting every millisecond, 0 for disable, default is 100ms

-N enable DB_TXN_NOSYNC to gain big performance improved, default is off

-R automatically remove log files that are no longer needed, default is off

使用

启动服务脚本

/usr/local/bin/memcacheq -d -r -H /opt/memcacheq -N -R -v -L 1024 -B 1024 -u root > /opt/logs/memcacheq/mq_error.log 2>&1

常用参数

## -d 作为守护进程

## -r 最大描述文件数

## -H BerkeleyDB文件的保存目录

## -N 改善性能

## -v 详细输出

## -L 日志缓存大小 单位KB

## -B 数据最大长度

## -u 以用户的身份来运行

shell中使用

telnet 127.0.0.1 22201

php中使用

$memcache_obj = new Memcache;

$memcache_obj->connect('127.0.0.1', 22201);

$memcache_obj->set('name','keyvalue',0,0);

$task = $memcache_obj->get('name');

echo $task

shell 中使用

set 0

STORED

示例:

set test 0 0 1

a

STORED

1e63054f67aefc4293a2a1e93244f8d6.png

stats queue # 查看队列

delete name # 表示删除name的队列

e51c6fbdae670d8d59b5cf008b71849b.png

上图表示队列name里面有4条信息,读取了3条

###问题集合

/usr/local/bin/memcacheq: error while loading shared libraries: libdb-6.1.so: cannot open shared object file: No such file or directory

在/etc/ld.so.conf中加入BerkeleyDB 的lib目录这一行,然后ldconfig

###扩展阅读

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值