?
tokyocabinet :一個key-value的DBM數(shù)據(jù)庫,但是沒有提供網(wǎng)絡(luò)接口,以下稱TC。
tokyotyrant :是為TC寫的網(wǎng)絡(luò)接口,他支持memcache協(xié)議,也可以通過HTTP操作,以下稱TT。
Tokyo Cabinet 是一款 DBM 數(shù)據(jù)庫,Tokyo Cabinet基于GNU Lesser General Public License協(xié)議發(fā)布,采用C語言開發(fā),它可以運行在任何支持C99和POSIX平臺上使用。相比一般的DBM數(shù)據(jù)庫有以下幾個特點:空間小,效率高,性能高,可靠性高,多種開發(fā)語言的支持(現(xiàn)已提供C,Perl,Ruby,Java,Lua的API),支持64位操作系統(tǒng)。該數(shù)據(jù)庫讀寫非???,哈希模式寫入100萬條數(shù)據(jù)只需0.643秒,讀取100萬條數(shù)據(jù)只需0.773秒,是 Berkeley DB 等 DBM 的幾倍。
Tokyo Tyrant 加上 Tokyo Cabinet,構(gòu)成了一款支持高并發(fā)的分布式持久存儲系統(tǒng),對任何原有Memcached客戶端來講,可以將Tokyo Tyrant看成是一個Memcached,但是,它的數(shù)據(jù)是可以持久存儲的。
?
?
一、安裝
1.tokyocabinet-1.4.46.tar.gz(數(shù)據(jù)庫)
#tar -zxvf tokyocabinet-1.4.47.tar.gz?
#cd tokyocabinet-1.4.47?
#./configure --prefix=/usr/local/tokyocabinet?
#make?
#make install??
? 2.tokyotyrant-1.1.41.tar.gz(網(wǎng)絡(luò)接口)
#tar -zxvf tokyotyrant-1.4.47.tar.gz?
#cd tokyotyrant-1.4.47?
#./configure --prefix=/usr/local/tokyotyrant?
#make?
#make install?
? 3.tokyo_tyrant-0.6.0.tgz(PHP擴展)#tar -zxvf tokyotyrant-1.4.47.tar.gz?
#cd tokyotyrant-1.4.47?
#./configure --prefix=/usr/local/tokyotyrant?
#make?
#make install?
二、簡單配置PHP配置后重置apache#vi /usr/local/php/etc/php.ini?
// 添加如下?
[totyr_tyrant]?
extension = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/tokyo_tyrant.so";?
三、單機啟動mkdir -p /ttserver/
ulimit -SHn 51200
ttserver -host 127.0.0.1 -port 11211 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/ -ulim 128m -sid 1 -rts /ttserver/ttserver.rts /ttserver/database.tcb#lmemb=1024#nmemb=2048#bnum=10000000
四、調(diào)用方式??? 1.任何Memcached客戶端均可直接調(diào)用tokyotyrant。<?php
$mem=new Memcache();
$a =$mem->connect("127.0.0.1",11211);
$b =$mem->add("key2","value2");
print_r( $mem->get("key2"));
echo "n";
$mem->add("key3",array("value3"=>"this is value3"));
print_r($mem->get("key3"));
echo "n";
?>
???? 2.還可以通過HTTP方式調(diào)用,下面以Linux的curl命令為例,介紹如何操作tokyotyrant:
(1)、寫數(shù)據(jù),將數(shù)據(jù)“value”寫入到“key”中:
curl -X PUT http://127.0.0.1:11211/key -d "value"
(2)、讀數(shù)據(jù),讀取“key”中數(shù)據(jù):
curl http://127.0.0.1:11211/key
(3)、刪數(shù)據(jù),刪除“key”:
curl -X DELETE http://127.0.0.1:11211/key
五、遇到的問題
????? 1.關(guān)于反序列化問題
? ??
?????? 2.在大數(shù)據(jù)量下的不穩(wěn)定
???????? 在數(shù)據(jù)達到30多G的時候,經(jīng)常出現(xiàn)寫入失敗,