设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 数据 创业者 手机
当前位置: 首页 > 运营中心 > 网站设计 > 教程 > 正文

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

发布时间:2022-06-16 14:43 所属栏目:48 来源:互联网
导读:下面来给大家整理一篇关于Linux中编译安装MemcacheQ,如果你正在学习这类开发不防一起来看看吧,希望这个例子可以帮助到各位同学. 队列(Queue)是一种常用的数据结构,在队列这种数据结构中,最先插入的元素将会最先被取出,反之最后插入的元素将会最后被取出,因此
  下面来给大家整理一篇关于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
 
        安装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

  安装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
 
  安装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
  $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);
  }  //phpfensi.com
  for ($i=1; $i<=6; $i++) {
      $queue = memcache_get($mcq, 'k');
      if ($queue === false) {
          echo "null\n";
      } else {
          echo $queue."\n";
      }
  }
  
  memcache_close($mcq);
  ?>。

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读