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

sunshine技术博客 sunshine技术博客

下面来给大家整理一篇关于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:

  1. tarzvxflibevent-2.0.21-stable.tar.gz
  2. cdlibevent-2.0.21-stable
  3. ./configure--prefix=/usr/local/libevent
  4. make&&makeinstall
  5. echo"/usr/local/libevent/lib">>/etc/ld.so.conf
  6. ldconfig

安装BerkeleyDB:

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

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

  1. tarzxvfdb-6.0.30.tar.gz
  2. cddb-6.0.30/build_unix
  3. ../dist/configure--prefix=/usr/local/berkeleydb
  4. make&&makeinstall
  5. ln-s/usr/local/berkeleydb/lib/libdb-6.0.so/usr/lib/
  6. echo"/usr/local/berkeleydb/lib/">>/etc/ld.so.conf
  7. ldconfig

安装MemcacheQ:

  1. tarzxvfmemcacheq-0.2.0.tar.gz
  2. cdmemcacheq-0.2.0
  3. ./configure--prefix=/usr/local/memcacheq--with-bdb=/usr/local/berkeleydb--with-libevent=/usr/local/libevent--enable-threads
  4. make&&makeinstall

启动MemcacheQ:

  1. Shell
  2. /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参数:

  1. -p<num>TCP监听端口(default:22201)
  2. -U<num>UDP监听端口(default:0,off)
  3. -s<file>unixsocket路径(不支持网络)
  4. -a<mask>unixsocket访问掩码(default0700)
  5. -l<ip_addr>监听网卡
  6. -d守护进程
  7. -r最大化核心文件限制
  8. -u<username>以用户身份运行(onlywhenrunasroot)
  9. -c<num>最大并发连接数(defaultis1024)
  10. -v详细输出(printerrors/warningswhileineventloop)
  11. -vv更详细的输出(alsoprintclientcommands/reponses)
  12. -i打印许可证信息
  13. -P<file>PID文件
  14. -t<num>线程数(default4)

用PHP测试一下:

  1. <?php
  2. $mcq=newMemcache;
  3. $mcq->connect('127.0.0.1',11210)ordie('ConnectError!');
  4. for($i=1;$i<=5;$i++){
  5. memcache_set($mcq,'k',$i,0,0);
  6. }//phpfensi.com
  7. for($i=1;$i<=6;$i++){
  8. $queue=memcache_get($mcq,'k');
  9. if($queue===false){
  10. echo"null\n";
  11. }else{
  12. echo$queue."\n";
  13. }
  14. }
  15. memcache_close($mcq);
  16. ?>

相关广告
  • Linux中编译安装MemcacheQ的步骤详解 Linux中编译安装MemcacheQ的步骤详解 Linux中编译安装MemcacheQ的步骤详解
相关阅读

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

2019/10/10 17:46:11 | 谷歌SEO算法 | 百度K站