当前位置:首页 > 开发 > 开源软件 > 正文

【汇总】Tokyo Cabinet

发表于: 2011-09-15   作者:crizy   来源:转载   浏览次数:
摘要: 安装 tokyocabinet-1.4.47.tar.gz(数据库) tokyotyrant-1.1.41.tar.gz(网络接口) tokyo_tyrant-0.6.0.tgz(PHP扩展)安装tokyocabinet #tar -zxvf tokyocabinet-1.4.47.tar.gz #cd tokyocabinet-1.4.47 #./configure

安装

  1. tokyocabinet-1.4.47.tar.gz(数据库)
  2. tokyotyrant-1.1.41.tar.gz(网络接口)
  3. tokyo_tyrant-0.6.0.tgz(PHP扩展)安装tokyocabinet
#tar -zxvf tokyocabinet-1.4.47.tar.gz
#cd tokyocabinet-1.4.47
#./configure --prefix=/usr/local/tokyocabinet
#make
#make install 

 

安装tokyotyrant

#tar -zxvf tokyotyrant-1.4.47.tar.gz
#cd tokyotyrant-1.4.47
#./configure --prefix=/usr/local/tokyotyrant
#make
#make install

 

启动TT

#mkdir /var/ttserver-1978
#chmod -R 777 /var/ttserver-1978
#vi /usr/local/tokyotyrant/sbin/ttservctl
===
// 修改部分
basedir="/var/ttserver"
->
basedir="/var/ttserver-1978"
===
#/usr/local/tokyotyrant/sbin/ttservctl start

 

安装tokyo_tyrant

#tar -zxvf tokyo_tyrant-0.6.0.tgz
#cd tokyo_tyrant
#/usr/local/php/bin/phpize
#./configure --with-php-config=/usr/local/php/bin/php-config --with-tokyo-tyrant=/usr/local/tokyotyrant --with-tokyo-cabinet-dir=/usr/local/tokyocabinet
#make
#make install

 

需要配置php

#vi /usr/local/php/etc/php.ini
// 添加如下
[totyr_tyrant]
extension = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/tokyo_tyrant.so";

 

fastcgi方式安装php,重启php

#pkill -o php-fpm
#/usr/local/php/sbin/php-fpm

 

 

tokyocabinet配置优化

选择数据库类型:TCHDB

  1. TCHDB的速度是最快的
  2. 服务器内存可以分配4G给TT,足够使用

配置如下

#vi /usr/local/tokyotyrant/sbin/ttservctl
===
// 修改部分
dbname="$basedir/casket.tch#bnum=1000000"
--->
dbname="$basedir/casket.tch#bnum=20000000#xmsiz=4294967296"
===
#/usr/local/tokyotyrant/sbin/ttservctl stop
#/usr/local/tokyotyrant/sbin/ttservctl start

注释:

bnum:TT算法下放在内存中记录总数

xmsize:分配给TT使用的内存,如果超过该内存,在该数据库类型下的TT性能将急剧下降,单位是B,不是K或者M哦

 

如果考虑到数据量特别大,可以尝试选择TCBDB,相比TCHDB,速度下降了了很多,同时对内存的需求也下降了很多

配置如下

#vi /usr/local/tokyotyrant/sbin/ttservctl
===
// 修改部分
dbname="$basedir/casket.tch#bnum=1000000"
--->
dbname="$basedir/casket.tch#lmemb=1024#nmemb=2048#bnum=20000000"
===

具体的可以参照附件“dtcc_tc_tt_tcsql.pdf”,张宴写的,如果侵犯了作者的著作权,请第一时间告知,立刻删除

 

 

PHP连接tokyocabinet

如果全部安装成功,便可以调用php的tt接口

<?php

/****http://www.php.net/manual/en/class.tokyotyrant.php****

    TokyoTyrant::add — Adds to a numeric key
    TokyoTyrant::connect — Connect to a database
    TokyoTyrant::connectUri — Connects to a database
    TokyoTyrant::__construct — Construct a new TokyoTyrant object
    TokyoTyrant::copy — Copies the database
    TokyoTyrant::ext — Execute a remote script
    TokyoTyrant::fwmKeys — Returns the forward matching keys
    TokyoTyrant::get — The get purpose
    TokyoTyrant::getIterator — Get an iterator
    TokyoTyrant::num — Number of records in the database
    TokyoTyrant::out — Removes records
    TokyoTyrant::put — Puts values
    TokyoTyrant::putCat — Concatenates to a record
    TokyoTyrant::putKeep — Puts a record
    TokyoTyrant::putNr — Puts value
    TokyoTyrant::putShl — Concatenates to a record
    TokyoTyrant::restore — Restore the database
    TokyoTyrant::setMaster — Set the replication master
    TokyoTyrant::size — Returns the size of the value
    TokyoTyrant::stat — Get statistics
    TokyoTyrant::sync — Synchronize the database
    TokyoTyrant::tune — Tunes connection values
    TokyoTyrant::vanish — Empties the database

    Examples:
    $tt = new connect($host, $port);
    $tt->put($key, $value);
    $tt->get($key);
    $tt->out($key);
    $tt->vanish();
    $num = $tt->num();

***************************************************/

 

 

修改Linux内核参数,发挥TT性能

1.主要是修改Linux的TCP连接数,可以是TT高并发的特点发挥出来

#sysctl -w net.ipv4.tcp_tw_reuse=1
#sysctl -w net.ipv4.tcp_tw_recycle=1
#sysctl -w net.ipv4.tcp_fin_timeout=10
#sysctl -w net.core.wmem_max=8388608
#sysctl -w net.core.rmem_max=8388608

注释:不需要重启Linux

 

 

附件

  1. tokyocabinet-1.4.47.tar.gz
  2. tokyotyrant-1.1.41.tar.gz
  3. tokyo_tyrant-0.6.0.tar.gz(由于iteye不允许上传tgz格式的文件,所以只好修改成tar.gz,下载后请修改回tokyo_tyrant-0.6.0.tgz)
  4. dtcc_tc_tt_tcsql.pdf(文件内容显示作者张宴,如果侵犯著作权,请第一时间告知,立刻删除)

【汇总】Tokyo Cabinet

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
[ 2008-8-7 08:53 | by 张宴 ]   [文章作者:张宴 本文版本:v1.3 最后修改:2009.07.06 转载请注
[ 2008-8-7 08:53 | by 张宴 ]   [文章作者:张宴 本文版本:v1.3 最后修改:2009.07.06 转载请注
 Tokyo Cabinet 是日本人 平林幹雄 开发的一款 DBM 数据库,该数据库读写非常快,哈希模式写入100
Redis, Memcached, Tokyo Tyrant and MySQL comparision Filed Under: ASP.NET, benchmark, Technol
I had tested the following key-value store for set() and get() MemcacheDB, use memcached clie
纯搬运,鸣谢S1的loddos,黑崎一护,AKKII等,想看原帖请各位基友回S1搅 纪子妃生下男孩,各家都现
译自 Emmanuel Goossaert (CodeCapsule.com) 在本文中,我将会逐组件地把Kyoto Cabinet 和 LevelDB
Jsource 前端资源的收集 前端技能 @拔赤 浏览器 Chrome (Chrome Canary) Firefox Safari Opera Fuck
========================回滚 选定一个svn版本号,右键: 复原此版本做出的修改 提交代码 ========
【Android学习专题】Dialog汇总 SkySeraphFeb22nd 2012 SZTCL Email:<span style
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号