Linux中编译安装MemcacheQ的步骤详解

队列(Queue)是一种常用的数据结构。在队列这种数据结构中,最先插入的元素将会最先被取出;反之最后插入的元素将会最后被取出,因此队列又称为“先进先出”(FIFO:First In First Out)的线性表。

加入元素的一端叫“队尾”,取出元素的一端叫“队头”。利用消息队列可以很好地异步处理数据的传送和存储,当遇到频繁且密集地向后端数据库中插入数据时,就可采用消息队列来异步处理这些数据写入。

MemcacheQ是一款基于Memcache协议的开源消息队列服务软件,由于其遵循了Memcache协议,因此开发成本很低,不需要学习额外的知识便可轻松掌握。

我在最近的一个项目中也应用了MemcacheQ,下面我将分享一下MemcacheQ在Linux中的编译和安装过程。

首先,MemcacheQ依赖于BerkeleyDB和Libevent,如果服务器中曾经安装过Memcached,那么Libevent应该已经存在了,否则就需要先下载安装Libevent。

下载链接如下:

Libevent:https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
Berkeley DB:http://download.oracle.com/otn/berkeley-db/db-6.0.30.tar.gz
MemcacheQ:https://github.com/stvchu/memcacheq

安装Libevent

tar zvxf libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable
./configure --prefix=/usr/local/libevent
make && make install
echo "/usr/local/libevent/lib" >> /etc/ld.so.conf
ldconfig

安装BerkeleyDB

BerkeleyDB简介:BerkeleyDB是一个开源的文件数据库,介于关系数据库与内存数据库之间,使用方式与内存数据库类似,它提供的是一系列直接访问数据库的函数,而不是像关系数据库那样需要网络通讯、SQL解析等步骤。

MemcacheQ依赖BerkleyDB用于队列数据的持久化存储,以免在MemcacheQ意外崩溃或中断时,队列数据不会丢失。

tar zxvf db-6.0.30.tar.gz
cd db-6.0.30/build_unix
../dist/configure --prefix=/usr/local/berkeleydb
make && make install
ln -s /usr/local/berkeleydb/lib/libdb-6.0.so /usr/lib/
echo "/usr/local/berkeleydb/lib/" >> /etc/ld.so.conf
ldconfig

安装MemcacheQ

tar zxvf memcacheq-0.2.0.tar.gz
cd memcacheq-0.2.0
./configure --prefix=/usr/local/memcacheq --with-bdb=/usr/local/berkeleydb --with-libevent=/usr/local/libevent --enable-threads
make && make install
启动MemcacheQ

Shell

/usr/local/memcacheq/bin/memcacheq -d -uroot -r -l 127.0.0.1 -p11210 -H /usr/local/mcq -N -R -v -L 1024 -B 1024 > /usr/local/mcq/logs/mcq_error.log 2>&1

附:MemcacheQ参数

-p <num>      TCP监听端口(default: 22201)
-U <num>      UDP监听端口(default: 0, off)
-s <file>     unix socket路径(不支持网络)
-a <mask>     unix socket访问掩码(default 0700)
-l <ip_addr>  监听网卡
-d            守护进程
-r            最大化核心文件限制
-u <username> 以用户身份运行(only when run as root)
-c <num>      最大并发连接数(default is 1024)
-v            详细输出 (print errors/warnings while in event loop)
-vv           更详细的输出 (also print client commands/reponses)
-i            打印许可证信息
-P <file>     PID文件
-t <num>      线程数(default 4)
用PHP测试一下

PHP

<?php
$mcq = new Memcache;
$mcq->connect('127.0.0.1', 11210) or die ('Connect Error!');
for ($i=1; $i<=5; $i++) {
    memcache_set($mcq, 'k', $i, 0, 0);
}
for ($i=1; $i<=6; $i++) {
    $queue = memcache_get($mcq, 'k');
    if ($queue === false) {
        echo "null\n";
    } else {
        echo $queue."\n";
    }
}
 
memcache_close($mcq);
?>

时间: 2024-12-25 10:20:44

Linux中编译安装MemcacheQ的步骤详解的相关文章

CentOS 5系统中编译安装LNMP的步骤详解

# 手动安装lnmp 包含 libiconv libunwind gperftools libmcrypt mhash mcrypt libpng freetype jpeg gd pcre libmemcached php_memcached(memcached.so)  eaccelerator ZendOptimizer mysql5.5 php5.3 nginx1.2.7 memcached tokyocabinet tokyotyrant #路径 程序存放      /data/ser

centos 6.4 64位编译安装mysql5.6步骤详解

直入主题:依赖安装 安装环境:centos 6.4 x86_64 安装c++编译环境: yum install gcc gcc-c++ ncurses-devel bision: cd /usr/local/src wget http://ftp.gnu.org/gnu/bison/bison-2.7.1.tar.gz tar -zxf bison-2.7.1.tar.gz cd bison-2.7.1 ./configure make && sudo make install cd ..

Linux VPS上安装RStudio Server步骤详解

这篇教程犹豫了很久,主要是因为作为站长,RStudio这类数据分析软件好像也没什么用.虽然如此,作为提升逼格的利器,微魔还是忍不住想发出来.对RStudio做个简单介绍,简单说来他只是R的IDE,至于R,是开源界里出了名的数学分析软件,有十分丰富的拓展包可应用于各种领域.本文主要介绍RStudio在VPS上的安装,通过安装Server版本,可以让我们通过浏览器直接访问并使用Rstudio. Linux VPS上安装RStudio Server 一.各平台安装RStudio 最新的各平台安装教程,

Linux系统下安装MySQL的步骤详解

如下是我工作中的记录,介绍的是linux系统下使用官方编译好的二进制文件进行安装MySql的安装过程和安装截屏,这种安装方式速度快,安装步骤简单! 需要的朋友可以按照如下步骤进行安装,可以快速安装MySql,希望可以帮助大家:)! 1.下载mysql的linux版本的二进制安装包: 地址:http://dev.mysql.com/download... 这里我将安装包重命名为:tingyun-mysql-5.6.22.tar.gz 说明:根据自己需要可以不进行重命名操作 2.解压安装包: 在需要

linux中配置Gitolite+Gitweb+Nginx步骤详解

Gitolite是功能非常强大的Git服务器构建工具,可以比较方便地实现用户权限管理等功能.但是Gitolite是一个纯粹的Git服务器,不像Gitlab等项目,自身不具备其它的访问和浏览方式. 之前的服务器上也配置过Gitolite,同时配合Redmine来用.对我来说不管是Gitlab还是Redmine功能都太过丰富了.实际上自己的服务器上装Gitolite只是放一些私有库,我只需要一个简单直观的Web浏览功能而已.论项目协作的话,不管是Github还是国内的Gitcafe和OSC都是很不错

linux中512M VPS内存优化步骤详解

512M的VPS优化apache内存 查看目前占用内存 Ps aux|grep httpd 基本一个占用50M左右 ps aux|grep httpd | wc –l 一共13个,减去grep httpd 那行 12个,说明占用大约600M 超过了服务器512M内存, (相比之下nginx主进程占用50M,带着php-fpm跑,一个fpm占用2M,开启10个fpm进程,一共70M的内存就足够了.) 标准Linux Apache配置在Apache的配置文件在/etc/httpd/conf/http

Ubuntu12编译安装PHP5.3步骤详解

Ubuntu12.04server上自己编译PHP5.3,比繁琐,共享之. 安装Apache2.2  代码如下 复制代码 sudo apt-get install apache2 -y 然后安装MySQL5.5  代码如下 复制代码 sudo apt-get install mysql-server-5.5 -y 接着就是编译依赖环境:  代码如下 复制代码  sudo apt-get install gcc g++ autoconf build-essential -y 相关的lib支持库:

CentOS 6 编译安装LNMP的步骤详解

# 手动安装lnmp 包含 libiconv libunwind gperftools libmcrypt mhash mcrypt libpng freetype jpeg gd pcre libmemcached php_memcached(memcached.so)  eaccelerator ZendOptimizer mysql5.5 php5.3 nginx1.2.7 memcached tokyocabinet tokyotyrant #路径 程序存放      /data/ser

Linux下编译安装OpenSSL的命令详解

系统环境:CentOS 6.5 64位 OpenSSL源码包:http://www.openssl.org/source/openssl-1.0.1f.tar.gz 安装zlib库支持:  代码如下 复制代码 cd /usr/local/src wget http://zlib.net/zlib-1.2.5.tar.gz tar zxvf zlib-1.2.5.tar.gz cd zlib-1.2.5 www.111cn.net ./configure && make &&