论坛首页 Java企业应用论坛

tokyotyrant-0.9-java使用例子

浏览 3728 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-07-14   最后修改:2010-04-26

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如下:
   tt
其中要用到slf4j,log4j,还有netty,否则会连接不上TTserver

 

回应网友问题:

mrdb不需要再增加任何连接池,支持高并发操作。

   发表时间:2010-01-21  
请问有接口能实现一次性读取所有数据吗?
0 请登录后投票
   发表时间:2010-01-21  
MRDB 这个类可以在高并发下,公用同一个吗?

还是需要做出一个连接池?
0 请登录后投票
   发表时间:2010-04-26  
lianj_lee 写道
请问有接口能实现一次性读取所有数据吗?

有一次性读取多个key的数据
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics