beansdb的java客戶端 beansdb4j

fmms 13年前發布 | 11K 次閱讀 Java

這是beansdb的java客戶端, 它使用了和python客戶端一模一樣的hash算法, 所以它和python客戶端是完全兼容 — 這意味著你可以用python客戶端存一個東西進beansdb, 然后用java客戶端把它取出來。

示例代碼:

 // specify the beansdb nodes.
 Map<InetSocketAddress, Range> servers = new HashMap<InetSocketAddress, Range>();
 servers.put(new InetSocketAddress("localhost", 7900), new Range(, 16));
 servers.put(new InetSocketAddress("localhost", 7901), new Range(, 16));
 servers.put(new InetSocketAddress("localhost", 7902), new Range(, 16));

 // 3,2,2 is the NRW number in the Dynamo thesis
 Beansdb db = new Beansdb(servers, 16, 3, 2, 2);

 // set the key: foo to value: bar
 db.set("foo", "bar");

 // get the value of foo
 System.out.println(db.get("foo"));

 // get the value for keys: hello, james, foo
 List<String> keys = new ArrayList<String>(3);
 keys.add("hello");
 keys.add("james");
 keys.add("foo");
 Map<String, Object> ret = db.getMulti(keys);

 for (String key : ret.keySet()) {
        System.out.println(key + " : " + ret.get(key));
 }

 // delete the key: foo
 db.delete("foo");

 // close the db connection
 db.close();

項目地址:http://code.google.com/p/beansdb4j/

BeansDB 是一個主要針對大數據量、高可用性的分布式KeyValue存儲系統,采用HashTree和簡化的版本號來快速同步保證最終一致性(弱),一個簡化版的 Dynamo。

它采用類似memcached的去中心化結構,在客戶端實現數據路由。目前只提供了 Python版本的客戶端,其它語言的客戶端可以由memcached的客戶端稍加改造得到。

主要特性包括:

  • 高可用:通過多個可讀寫的用于備份實現高可用;
  • 最終一致性:通過哈希樹實現快速完整數據同步(短時間內數據可能不一致);
  • 容易擴展:可以在不中斷服務的情況下進行容量擴展;
  • 高性能:異步IO和高性能的Key Value數據Tokyo Cabinet;
  • 可配置的可用性和一致性:通過N,W,R進行配置;
  • 簡單協議:Memcached兼容協議,大量可用客戶端。

項目地址:http://code.google.com/p/beansdb/

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!