Tokyo Cabinet 是日本人平林幹雄开发的一款 DBM 数据库,该数据库读写非常快,哈希模式写入100万条数据只需0.643秒,读取100万条数据只需0.773秒,是 Berkeley DB 等 DBM 的几倍。
Tokyo Tyrant 是由同一作者开发的 Tokyo Cabinet 数据库网络接口。它拥有Memcached兼容协议,也可以通过HTTP协议进行数据交换。Tokyo Tyrant 加上 Tokyo Cabinet,构成了一款支持高并发的分布式持久存储系统,对任何原有Memcached客户端来讲,可以将Tokyo Tyrant看成是一个Memcached,但是,它的数据是可以持久存储的。这一点,跟新浪的Memcachedb性质一样。
现在就简单介绍一下在windows连接TTserver的接口之一,tokyotyrant-0.9-java的用法:
package my.test;
import tokyotyrant.MRDB;
import tokyotyrant.networking.NodeAddress;
/**
* 测试使用MRDB
* @author henry
* @verion 1.0
* @date 2009-7-13
*/
public class TestTTDB {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
//实例化一个MRDB(Multiple Rs DB:多重认证数据库)
MRDB rdb = new MRDB();
//启动一个链接
rdb.open(NodeAddress.addresses("tcp://192.168.1.140:11211"));
//rdb.await判断数据库链接是否还存活,是则rdb.put插入数据
//类似于一个多用途RDB管理器
if(!rdb.await(rdb.put("name1", "Tom")) ||
!rdb.await(rdb.put("myName1", "Jam"))) {
System.out.println("Error"); //如果链接已断开,则打印Error
}
//从数据库中读取name1这个参数的值
Object value = rdb.await(rdb.get("name1"));
if(value != null) {//判断数据是否为空
System.out.println(value);
} else {
System.out.println("value is null");
}
rdb.close();//关闭数据库链接
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
在eclipse中,需要的jar如下:
其中要用到slf4j,log4j,还有netty,否则会连接不上TTserver
回应网友问题:
mrdb不需要再增加任何连接池,支持高并发操作。