MemcacheQ 是一个基于 MemcacheDB 的消息队列服务器。官网地址:http://memcachedb.org/memcacheq/

特点:

1.简单易用。

2.处理速度快。

3.可创建多条队列。

4.并发性能高。

5.与memcache协议兼容。

MemcacheQ 依赖 Berkeley DB 和 libevent(1.4 或更高)。

Berkeley DB用于持久化存储队列数据,避免当MemcacheQ崩溃或服务器死机时发生数据丢失。

1.安装Berkeley DB

下载地址:http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html?ssSourceSiteId=ocomcn

$tar xvzf db-6.0..tar.gz
$cd db-6.0./
$cd build_unix/
$../dist/configure
$make
$sudo make install

2.安装libevent

下载地址:http://libevent.org/

$tar xvzf libevent-2.0.-stable.tar.gz
$cd libevent-2.0.-stable
$./configure
$make
$sudo make install

增加两行到 /etc/ld.so.conf

/usr/local/lib
/usr/local/BerkeleyDB.6.0/lib

新增完运行命令刷新

sudo ldconfig

3.安装MemcacheQ

下载地址:https://code.google.com/p/memcacheq/downloads/list

创建libdb.so softlink

ln -s /usr/local/BerkeleyDB.6.0/lib/libdb-6.0.so /usr/lib/libdb.so
$tar xvzf memcacheq-0.2.x.tar.gz
$cd memcacheq-0.2.x
$./configure --with-bdb=/usr/local/BerkeleyDB.6.0 --with--libevent=/usr/lib --enable-threads
$make
$sudo make install

--with-bdb=/usr/local/BerkeleyDB.6.0 指定 Berkeley DB路径

--with--libevent=/usr/lib 指定 libevent 路径

--enable-threads 开启多线程

4.运行与使用

参数列表:

-p <num>      TCP监听端口(default: )
-U <num> UDP监听端口(default: , off)
-s <file> unix socket路径(不支持网络)
-a <mask> unix socket访问掩码(default )
-l <ip_addr> 监听网卡
-d 守护进程
-r 最大化核心文件限制
-u <username> 以用户身份运行(only when run as root)
-c <num> 最大并发连接数(default is )
-v 详细输出 (print errors/warnings while in event loop)
-vv 更详细的输出 (also print client commands/reponses)
-i 打印许可证信息
-P <file> PID文件
-t <num> 线程数(default )
--------------------BerkeleyDB Options-------------------------------
-m <num> BerkeleyDB内存缓存大小, default is 64MB
-A <num> 底层页面大小, default is , (512B ~ 64KB, power-of-two)
-H <dir> 数据库家目录, default is '/data1/memcacheq'
-L <num> 日志缓冲区大小, default is 32KB
-C <num> 多少秒checkpoint一次, for disable, default is minutes
-T <num> 多少秒memp_trickle一次, for disable, default is seconds
-S <num> 多少秒queue stats dump一次, for disable, default is seconds
-e <num> 达到缓存百分之多少需要刷新, default is %
-E <num> 一个单一的DB文件有多少页, default is *, for disable
-B <num> 指定消息体的长度,单位字节, default is
-D <num> 多少毫秒做一次死锁检测(deadlock detecting), for disable, default is 100ms
-N 开启DB_TXN_NOSYNC获得巨大的性能改善, default is off
-R 自动删除不再需要的日志文件, default is off

启动MemcacheQ

memcacheq -d -r -H /data1/memcacheq -N -R -v -L  -B  > /data1/mq_error.log >&

memcacheq -h 查看更多设置

PHP代码

<?php
/* 连接memcacheq server */
$memcache_obj = new Memcache();
$memcache_obj->connect('localhost', 22201); // default port 22201 /* 添加到对列 */
$memcache_obj->set('demoqueue1', 'message body here1', MEMCACHE_COMPRESSED, 0);
$memcache_obj->set('demoqueue1', 'message body here2', MEMCACHE_COMPRESSED, 0);
$memcache_obj->set('demoqueue1', 'message body here3', MEMCACHE_COMPRESSED, 0);
$memcache_obj->set('demoqueue1', 'message body here4', MEMCACHE_COMPRESSED, 0); /* 移出对列 */
echo $memcache_obj->get('demoqueue1').'<br>';
echo $memcache_obj->get('demoqueue1').'<br>';
echo $memcache_obj->get('demoqueue1').'<br>';
echo $memcache_obj->get('demoqueue1').'<br>'; $memcache_obj->close();
?>

MemcacheQ 安装与使用的更多相关文章

  1. MemcacheQ安装及使用

    一.MemcacheQ安装记录1.安装libevent查看是否已经安装了libeventrpm -qa|grep libevent如果没有安装使用yum安装yum install libevent l ...

  2. MemcacheQ安装

    一.memcacheq介绍 特性: 1.简单易用 2.处理速度快 3.多条队列 4.并发性能好 5.与memcache的协议兼容 6.在zend framework中使用方便 memcacheq依赖于 ...

  3. php 队列

    一.php中对共享内存,消息队列的操作 http://blog.csdn.net/haitun312366/article/details/8614797 二.PHP memcache 队列类 htt ...

  4. MemcacheQ 的安装与使用

    1.安装libevent 官网:http://www.libevent.org/ 全选复制放进笔记 $ wget https://github.com/downloads/libevent/libev ...

  5. 持久化消息队列memcacheq的安装配置

    MemcacheQ 是一个基于 MemcacheDB 的消息队列服务器. 一.memcacheq介绍 特性: 1.简单易用 2.处理速度快 3.多条队列 4.并发性能好 5.与memcache的协议兼 ...

  6. 在CentOS 6.2上安装 MemcacheQ 最新版

    1.      安装 yum install gcc cc make libevent libevent-devel 2.      安装Berkeley DB 下载:http://www.oracl ...

  7. 安装memcacheq

    1.下载memcacheq包    下载地址:http://code.google.com/p/memcacheq/downloads/list    解压包:# tar -zxvf memcache ...

  8. php 安装memcacheq

    berkeley: http://download.oracle.com/otn/berkeley-db/db-6.1.19.tar.gz?AuthParam=1408431634_4887d4468 ...

  9. 在linux下安装memcacheq

    #!/bin/bash mkdir ~/build cd ~/build wget http://download.oracle.com/berkeley-db/db-5.1.19.tar.gz .t ...

随机推荐

  1. 线性表(一)——数组循环右移算法

    源码:rshift.cpp #include "stdafx.h" #include <stdio.h> /****************************** ...

  2. 编译安装的 mysql apache 用 service mysqld start 来启动

    先我们把mysql增加到linux的系统服务中去 mysql:  代码如下 复制代码 cd /usr/local/mysql/share/mysql cp mysql.server /etc/init ...

  3. JSP常见指令

    JSP常见指令 标签: jspincludeservletjavaappletarchive 2011-11-07 20:07 13193人阅读 评论(3) 收藏 举报 版权声明:本文为博主原创文章, ...

  4. QB资料学习.01

    1.多数据集的读取 A.取数SQL的配置,借用TStringList进行存储多个不同的取数SQL B.DBA取数:  DBA.ReadMultipleDataSet(TStringList) C.结果 ...

  5. xxxxxxxxx

    异步for (var index = 0; index < data.length; index++) { var req = http.request(urlEntity, function( ...

  6. MSSQL常用函数

    declare 定义变量 set 为变量赋值 SUBSTRING()函数 SUBSTRING ( expression, start, length ) expression 字符串.二进制字符串.文 ...

  7. JavaScript基础--面向对象三大特性(八):继承封装多态

    一.构造函数基本用法:function 类名(参数列表){ 属性=参数值} function Person(name,age){ this.name = name; this.age = age; } ...

  8. SVD小结

    1.矩阵分解 假设一个矩阵Data是m行n列,SVD(奇异值分解)将Data分解为U,E,VT 三个矩阵: Datam*n=Um*kEk*kVTk*n E是一个对角矩阵,对角元素为奇异值,对应Data ...

  9. HDU 4822----其实不会这个题

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=4822 并不会做这个题,题解说是LCA(最近公共祖先),并不懂,说一下我自己的思路吧,虽然没能实现出来. 题 ...

  10. gcc学习笔记

    1:第一个程序 : hello world #include <stdio.h> int main(void) { printf("Hello , world ! \n" ...