国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux中編譯安裝MemcacheQ的步驟詳解

2024-08-27 23:58:59
字體:
來源:轉載
供稿:網友

下面來給大家整理一篇關于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. tar zvxf libevent-2.0.21-stable.tar.gz 
  2. cd libevent-2.0.21-stable 
  3. ./configure --prefix=/usr/local/libevent 
  4. make && make install 
  5. echo "/usr/local/libevent/lib" >> /etc/ld.so.conf 
  6. ldconfig 

安裝BerkeleyDB:

BerkeleyDB簡介:BerkeleyDB是一個開源的文件數據庫,介于關系數據庫與內存數據庫之間,使用方式與內存數據庫類似,它提供的是一系列直接訪問數據庫的函數,而不是像關系數據庫那樣需要網絡通訊、SQL解析等步驟.

MemcacheQ依賴BerkleyDB用于隊列數據的持久化存儲,以免在MemcacheQ意外崩潰或中斷時,隊列數據不會丟失.

  1. tar zxvf db-6.0.30.tar.gz 
  2. cd db-6.0.30/build_unix 
  3. ../dist/configure --prefix=/usr/local/berkeleydb 
  4. make && make install 
  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. tar zxvf memcacheq-0.2.0.tar.gz 
  2. cd memcacheq-0.2.0 
  3. ./configure --prefix=/usr/local/memcacheq --with-bdb=/usr/local/berkeleydb --with-libevent=/usr/local/libevent --enable-threads 
  4. make && make install 

啟動MemcacheQ:

  1. Shell 
  2. /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參數:

  1. -p <num>      TCP監聽端口(default: 22201) 
  2. -U <num>      UDP監聽端口(default: 0, off) 
  3. -s <file>     unix socket路徑(不支持網絡) 
  4. -a <mask>     unix socket訪問掩碼(default 0700) 
  5. -l <ip_addr>  監聽網卡 
  6. -d            守護進程 
  7. -r            最大化核心文件限制 
  8. -u <username> 以用戶身份運行(only when run as root) 
  9. -c <num>      最大并發連接數(default is 1024) 
  10. -v            詳細輸出 (print errors/warnings while in event loop) 
  11. -vv           更詳細的輸出 (also print client commands/reponses) 
  12. -i            打印許可證信息 
  13. -P <file>     PID文件 
  14. -t <num>      線程數(default 4) 

用PHP測試一下:

  1. <?php 
  2. $mcq = new Memcache; 
  3. $mcq->connect('127.0.0.1', 11210) or die ('Connect Error!'); 
  4. for ($i=1; $i<=5; $i++) { 
  5.     memcache_set($mcq'k'$i, 0, 0); 
  6. }  //Vevb.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. ?>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 文山县| 太和县| 阜康市| 大新县| 武鸣县| 化隆| 崇礼县| 鸡泽县| 夏津县| 杂多县| 突泉县| 阿拉善左旗| 富民县| 雅安市| 通山县| 宜丰县| 顺义区| 青河县| 桂东县| 宁强县| 石家庄市| 安乡县| 陵川县| 友谊县| 长垣县| 宾阳县| 罗定市| 南召县| 沂南县| 盐城市| 武义县| 瑞安市| 六枝特区| 十堰市| 大姚县| 兰溪市| 民丰县| 泰兴市| 山阳县| 石景山区| 雷山县|