一. 安裝
MemcacheQ 是一個簡單的分布式隊列服務,它的運行依賴于BerkeleyDB 和 libevent,所以需要先安裝BerkeleyDB和libevent.Berkeley DB 4.7 or laterDownload from <http://www.oracle.com/database/berkeley-db/db/index.html>How to install BerkeleyDB:$tar -xvzf db-5.3.21.tar.gz$cd db-5.3.21/$cd build_unix/$../dist/configure$make$make install
安裝BerkeleyDB時,可以手動指定安裝路徑:
../dist/configure --prefix=/usr/local/berkeleydb
不指定的話,默認安裝在:/usr/local/BerkeleyDB.5.3
libevent 1.4.x or later
先檢查libevent 是否已經安裝:
#rpm -qa|grep libevent
libevent-devel-2.0.10-2.fc15.x86_64libevent-2.0.10-2.fc15.x86_64libevent-2.0.10-2.fc15.i686或者:
ls -al /usr/lib |grep libevent
如果還沒有安裝:
Download from <http://monkey.org/~provos/libevent/>
How to install libevent:$tar -xvzf libevent-1.4.x-stable.tar.gz$cd libevent-1.4.x-stable$./configure$make$make install
安裝libevent時,可以手動指定安裝路徑:
./configure --prefix=/usr/local/libevent
不指定的話,默認安裝在:/usr/lib64(64位系統)或者/usr/lib(32位系統)
memcacheQ
下載軟件包:http://code.google.com/p/memcacheq/downloads/list
解壓縮,cd進目錄./configure --enable-threadsmakemake install
configure 時,如果libevent 不是安裝在默認目錄,需--with--libevent=/usr/local/libevent指定libevent的安裝目錄
若沒有將/usr/local/lib
/usr/local/BerkeleyDB.5.3/lib添加進/etc/ld.so.conf 并運行 /sbin/ldconfig 則需--with-bdb=/usr/local/BerkeleyDB.5.3 指定berkeleyDb庫的路徑
二.使用
啟動memcacheQ
使用memcacheq -h 的命令來查看命令行選項啟動memcacheq:memcacheq -d -u nobody -r -H /tmp/memcacheq -N -R -v -L 1024 -B 1024 > /tmp/mq_error.log 2>&1啟動時需-u 參數,指定運行memcacheQ的用戶,且指定的用戶必須有數據文件的讀寫權限,如這里的/tmp/memcacheQ目錄,否則不能啟動命令行使用memcacheQ
telnet 127.0.0.1 22202Trying 127.0.0.1…Connected to 127.0.0.1.Escape character is ‘^]'.只有兩個命令可以在命令行下使用memcacheQ
寫對列:set <queue name> <flags> 0 <message_len>/r/n<put your message body here>/r/nSTORED/r/n取出隊列:get <queue name>/r/nVALUE <queue name> <flags> <message_len>/r/n<your message body will come here>/r/nEND/r/n與memcache協議基本一致,只是把key name換成queue name,而且在set的命令中,忽略了expire_time的參數。mq的數據存儲是存在berkeleyDB中,做了持久化存儲,沒有內存的過期時間。示例: telnet 127.0.0.1 22202Trying 127.0.0.1…Connected to 127.0.0.1.Escape character is ‘^]'.set q4 0 0 5helloSTOREDset q4 0 0 5worldSTOREDstats queueSTAT q4 2/0ENDget q4VALUE q4 0 5新聞熱點
疑難解答