MemcacheQインストールと使用
4109 ワード
MemcacheQはMemcacheDBに基づくメッセージキューサーバです.公式サイトのアドレス:http://memcachedb.org/memcacheq/
特徴:
1.簡単で使いやすい
2.処理速度が速い.
3.複数のキューを作成できます.
4.同時性が高い.
5.memcacheプロトコルと互換性があります.
MemcacheQはBerkeley DBとlibevent(1.4以上)に依存する.
Berkeley DBは、MemcacheQが崩壊した時やサーバーがフリーズした時にデータが失われないようにキューデータを恒久化するために使用される.
1.Berkeley DBの取り付け
ダウンロード先:http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html?ssSourceSiteId=ocomcn
ダウンロード先:http://libevent.org/
ダウンロード先:https://code.google.com/p/memcacheq/downloads/list
libdb.soソフトリンクを作成します.
--with-libevent=/usr/lib指定libeventパス
--enaber-threadsマルチスレッドを開く
4.運転と使用
パラメータリスト:
特徴:
1.簡単で使いやすい
2.処理速度が速い.
3.複数のキューを作成できます.
4.同時性が高い.
5.memcacheプロトコルと互換性があります.
MemcacheQはBerkeley DBとlibevent(1.4以上)に依存する.
Berkeley DBは、MemcacheQが崩壊した時やサーバーがフリーズした時にデータが失われないようにキューデータを恒久化するために使用される.
1.Berkeley DBの取り付け
ダウンロード先:http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html?ssSourceSiteId=ocomcn
$tar xvzf db-6.0.20.tar.gz
$cd db-6.0.20/
$cd build_unix/
$../dist/configure
$make
$sudo make install
2.libeventの設置ダウンロード先:http://libevent.org/
$tar xvzf libevent-2.0.21-stable.tar.gz
$cd libevent-2.0.21-stable
$./configure
$make
$sudo make install
二行を追加します./usr/local/lib
/usr/local/BerkeleyDB.6.0/lib
運転コマンドの更新が追加されました.sudo ldconfig
3.MemcacheQをインストールするダウンロード先:https://code.google.com/p/memcacheq/downloads/list
libdb.soソフトリンクを作成します.
ln -s /usr/local/BerkeleyDB.6.0/lib/libdb-6.0.so /usr/lib/libdb.so
$tar xvzf memcacheq-0.2.x.tar.gz
$cd memcacheq-0.2.x
$./configure --with-bdb=/usr/local/BerkeleyDB.6.0 --with--libevent=/usr/lib --enable-threads
$make
$sudo make install
--with-bdb=/usr/local/Berkeley DB.6.0指定Berkeley DBパス--with-libevent=/usr/lib指定libeventパス
--enaber-threadsマルチスレッドを開く
4.運転と使用
パラメータリスト:
-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)
--------------------BerkeleyDB Options-------------------------------
-m <num> BerkeleyDB , default is 64MB
-A <num> , default is 4096, (512B ~ 64KB, power-of-two)
-H <dir> , default is '/data1/memcacheq'
-L <num> , default is 32KB
-C <num> checkpoint , 0 for disable, default is 5 minutes
-T <num> memp_trickle , 0 for disable, default is 30 seconds
-S <num> queue stats dump , 0 for disable, default is 30 seconds
-e <num> , default is 60%
-E <num> DB , default is 16*1024, 0 for disable
-B <num> , , default is 1024
-D <num> (deadlock detecting), 0 for disable, default is 100ms
-N DB_TXN_NOSYNC , default is off
-R , default is off
MemcacheQを起動しますmemcacheq -d -r -H /data1/memcacheq -N -R -v -L 1024 -B 1024 > /data1/mq_error.log 2>&1
memcacheq -h
<?php
/* memcacheq server */
$memcache_obj = new Memcache();
$memcache_obj->connect('localhost', 22201); // default port 22201
/* */
$memcache_obj->set('demoqueue1', 'message body here1', MEMCACHE_COMPRESSED, 0);
$memcache_obj->set('demoqueue1', 'message body here2', MEMCACHE_COMPRESSED, 0);
$memcache_obj->set('demoqueue1', 'message body here3', MEMCACHE_COMPRESSED, 0);
$memcache_obj->set('demoqueue1', 'message body here4', MEMCACHE_COMPRESSED, 0);
/* */
echo $memcache_obj->get('demoqueue1').'<br>';
echo $memcache_obj->get('demoqueue1').'<br>';
echo $memcache_obj->get('demoqueue1').'<br>';
echo $memcache_obj->get('demoqueue1').'<br>';
$memcache_obj->close();
?>