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




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

2022-07-20 20:27:13 网络知识 官方管理员

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

Linux,MemcacheQ

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

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

  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

  BerkeleyDB:http://download.oracle.com/otn/berkeley-db/db-6.0.30.tar.gz

  MemcacheQ:https://github.com/stvchu/memcacheq

  安装Libevent

  tarzvxflibevent-2.0.21-stable.tar.gz

  cdlibevent-2.0.21-stable

  。/configure--prefix=/usr/local/libevent

  make&&makeinstall

  echo/usr/local/libevent/lib》》/etc/ld.so.conf

  ldconfig

  安装BerkeleyDB

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

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

  tarzxvfdb-6.0.30.tar.gz

  cddb-6.0.30/build_unix

  。。/dist/configure--prefix=/usr/local/berkeleydb

  make&&makeinstall

  ln-s/usr/local/berkeleydb/lib/libdb-6.0.so/usr/lib/

  echo/usr/local/berkeleydb/lib/》》/etc/ld.so.conf

  ldconfig

  安装MemcacheQ

  tarzxvfmemcacheq-0.2.0.tar.gz

  cdmemcacheq-0.2.0

  。/configure--prefix=/usr/local/memcacheq--with-bdb=/usr/local/berkeleydb--with-libevent=/usr/local/libevent--enable-threads

  make&&makeinstall

  启动MemcacheQ

  Shell

  /usr/local/memcacheq/bin/memcacheq-d-uroot-r-l127.0.0.1-p11210-H/usr/local/mcq-N-R-v-L1024-B1024》/usr/local/mcq/logs/mcq_error.log2》&1

  附:MemcacheQ参数

  -p《num》TCP监听端口(default:22201)

  -U《num》UDP监听端口(default:0,off)

  -s《file》unixsocket路径(不支持网络)

  -a《mask》unixsocket访问掩码(default0700)

  -l《ip_addr》监听网卡

  -d守护进程

  -r最大化核心文件限制

  -u《username》以用户身份运行(onlywhenrunasroot)

  -c《num》最大并发连接数(defaultis1024)

  -v详细输出(printerrors/warningswhileineventloop)

  -vv更详细的输出(alsoprintclientcommands/reponses)

  -i打印许可证信息

  -P《file》PID文件

  -t《num》线程数(default4)

  用PHP测试一下

  PHP

  《?php

  $mcq=newMemcache;

  $mcq-》connect(‘127.0.0.1’,11210)ordie(‘ConnectError!’);

  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){

  echonull\n;

  }else{

  echo$queue.\n;

  }

  }

  memcache_close($mcq);

  ?》

  上面就是Linux编译安装MemcacheQ的方法介绍了,在安装MemcacheQ前,需要先安装Libevent和BerkeleyDB。


发表评论:

最近发表
网站分类
标签列表