MemcacheQ 安装与使用
MemcacheQ 是一个基于 MemcacheDB 的消息队列服务器。官网地址:http://memcachedb.org/memcacheq/
特点:
1.简单易用。
2.处理速度快。
3.可创建多条队列。
4.并发性能高。
5.与memcache协议兼容。
MemcacheQ 依赖 Berkeley DB 和 libevent(1.4 或更高)。
Berkeley DB用于持久化存储队列数据,避免当MemcacheQ崩溃或服务器死机时发生数据丢失。
1.安装Berkeley DB
$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 安装与使用的更多相关文章
- MemcacheQ安装及使用
一.MemcacheQ安装记录1.安装libevent查看是否已经安装了libeventrpm -qa|grep libevent如果没有安装使用yum安装yum install libevent l ...
- MemcacheQ安装
一.memcacheq介绍 特性: 1.简单易用 2.处理速度快 3.多条队列 4.并发性能好 5.与memcache的协议兼容 6.在zend framework中使用方便 memcacheq依赖于 ...
- php 队列
一.php中对共享内存,消息队列的操作 http://blog.csdn.net/haitun312366/article/details/8614797 二.PHP memcache 队列类 htt ...
- MemcacheQ 的安装与使用
1.安装libevent 官网:http://www.libevent.org/ 全选复制放进笔记 $ wget https://github.com/downloads/libevent/libev ...
- 持久化消息队列memcacheq的安装配置
MemcacheQ 是一个基于 MemcacheDB 的消息队列服务器. 一.memcacheq介绍 特性: 1.简单易用 2.处理速度快 3.多条队列 4.并发性能好 5.与memcache的协议兼 ...
- 在CentOS 6.2上安装 MemcacheQ 最新版
1. 安装 yum install gcc cc make libevent libevent-devel 2. 安装Berkeley DB 下载:http://www.oracl ...
- 安装memcacheq
1.下载memcacheq包 下载地址:http://code.google.com/p/memcacheq/downloads/list 解压包:# tar -zxvf memcache ...
- php 安装memcacheq
berkeley: http://download.oracle.com/otn/berkeley-db/db-6.1.19.tar.gz?AuthParam=1408431634_4887d4468 ...
- 在linux下安装memcacheq
#!/bin/bash mkdir ~/build cd ~/build wget http://download.oracle.com/berkeley-db/db-5.1.19.tar.gz .t ...
随机推荐
- Object.create()兼容实现方法
if (!Object.create) { Object.create = (function(){ function F(){} return function(o){ if (arguments. ...
- mybaties 查询 语句正确 但是查不到结果
控制台输出的语句拿到数据库查询就有数据,但是一直显示不出来 也不报错 后来 百度发现数据库连接不对 因为其中引用了两个数据库 所有写混了 ---------------------- ...
- java文件上传下载
文件上传首先要引入两个核心包 commons-fileupload-1.2.1.jar commons-io-1.4.jar 下面是对文件上传和下载的一些代码做的一个简单封装,可以方便以后直接使用[使 ...
- NOIP系列复习及题目集合
首先是我的酱油记了啦~: Xs的NOIP2014酱油记,持续更新中 知识点方面: noip知识点总结之--贪心 noip知识点总结之--线性筛法及其拓展 noip知识点总结之--欧几里得算法和扩展欧几 ...
- iOS8定位问题解决方案
原文 http://blog.csdn.net/nextstudio/article/details/40050095 1.修改info 新增Key: NSLocationAlwaysUsageDe ...
- 判断CAD版本
使用命令: ACADVER ACADVER = "17.2s (LMS Tech)" (只读) CAD2016 ACADVER = "20.1s (LMS Tech)&q ...
- 100个直接可以拿来用的JavaScript实用功能代码片段
目录如下: 1.原生JavaScript实现字符串长度截取2.原生JavaScript获取域名主机3.原生JavaScript清除空格4.原生JavaScript替换全部5.原生JavaScript转 ...
- EntityFramework 实体映射到数据库
EntityFramework实体映射到数据库 在Entity Framework Code First与数据表之间的映射方式实现: 1.Fluent API映射 通过重写DbContext上的OnM ...
- 神奇的盒模型(BFC)
上一篇我提到每一个元素都有自己的display属性,其属性值可以改变.其改变的方式,可以利用神奇的css盒模型(BFC). 盒模型,是css可视化格式化系统的基础,可以用于元素定位和网页布局.一个盒模 ...
- C语言实现简单线程池(转-Newerth)
有时我们会需要大量线程来处理一些相互独立的任务,为了避免频繁的申请释放线程所带来的开销,我们可以使用线程池.下面是一个C语言实现的简单的线程池. 头文件: 1: #ifndef THREAD_POOL ...