欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

分布式队列服务MemcacheQ在Linux系统下的编译安装

程序员文章站 2022-06-19 23:26:06
不少人在MemcacheQ的安装上遇到了不少麻烦,小编就为大家详细介绍下MemcacheQ在Linux系统下的编译安装,需要的朋友不要错过啊... 15-06-15...

  memcacheq作为简单的分布式队列服务,因为对memcacheq不了解,不少人在memcacheq的安装上遇到了不少麻烦,小编就为大家详细介绍下memcacheq在linux系统下的编译安装,以便大家有更详细的了解。

分布式队列服务MemcacheQ在Linux系统下的编译安装

  队列(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);

  ?》

  上面就是linux编译安装memcacheq的方法介绍了,在安装memcacheq前,需要先安装libevent和berkeleydb。