Tokyo Tyrant

网上的一些资料的整理:

 

TTserver参数设置详解:
http://blog.163.com/chenxiaodong_2009/blog/static/129082330201022481421504/

利用Tokyo Tyrant构建兼容Memcached协议、支持故障转移、高并发的分布式key-value持久存储系统:
http://blog.s135.com/post/362/

 

ln -s /usr/local/tokyocabinet-1.4.47/lib/libtokyocabinet.so.9 /usr/local/lib/libtokyocabinet.so.9

tokyotyrant
优点:
1.用Tokyo Cabinet读写速度非常快,是Berkeley DB 等 DBM 的几倍。
2.故障转移 (双机互为主辅模式)
3.日志文件体积小
4.任何Memcached客户端均可直接调用tokyotyrant。还可以通过HTTP方式调用

curl -X PUT http://192.168.0.249:1978/key -d "value"
curl http://192.168.0.249:1978/key
curl -X DELETE http://192.168.0.249:1978/key

缺点:
1.存进去的数据不到满了不会过期
2.当我们从中取数据时,会是一个序列化的字符串,没有自动反序列化处理
3.32位操作系统 Tokyo Cabinet 数据库单个文件不能超过2G

启动:
ttserver -host 192.168.0.249 -port 1978 -thnum 8 -dmn -pid /var/ttserver/ttserver.pid -log /var/ttserver/ttserver.log -le -ulog /var/ttserver/ -ulim 128m -sid 1 -rts /var/ttserver/ttserver.rts /var/ttserver/database.tcb#bnum=1000000

 telnet 192.168.0.249 1978

stats

stats
STAT pid 5791
STAT uptime 25562
STAT time 1317198808
STAT version 1.1.33
STAT rusage_user 0.523920
STAT rusage_system 1.666746
STAT curr_items 4
STAT bytes 145
END

ttserver对外有三种协议,可以用curl程序调用http协议访问,可tt自带的客户端程序,使用私有二进制协议访问。

用tokyotyrant自带的工具tcrmttest,用来测试(多线程)对Tokyo Tyrant网络接口的写入、读取移动做效率测试。
/usr/local/tokyotyrant/bin/
./tcrmttest write -port 11211 192.168.137.64 100000

当采用B+树时,可以存储相同key的多条记录,有存储,删除,读取的方法,还可以按照一定顺序来读取记录。(可以做队列)
如果命令数据库名 database.tcb 就指定了用B+ TREE结构
参考:
1、 数据库名的命名方式被Tokyo Cabinet的抽象API指定。
2、 如果数据库名为"*",表示内存hash数据库。
3、 如果数据库名为"+"表示内存tree数据库。
4、 如果数据库名为".tch",则数据库为hash数据库。
5、 如果数据库名的后缀为".tcb",数据库将为B+ tree数据库
6、 如果数据库名的后缀为".tcf"。则数据库将为fixed-length数据库。
7、 如果数据库名的后缀为".tct",则数据将为一个table数据库(有表的概念)。

 
做为一个定长数组,key必须是自然数,其它的和hash表完全一样,因为key是自然数,所以速度比hash表要快

使用B+存储,可以构造FIFO的队列,通过tcbmgr put -dd c.tcb a aa 可存放进具有重复主键的值,在get的时候,只获取第一个。而使用out命令,可以删除第一个值。

此条目发表在 服务器端 分类目录,贴了 , , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>