beansdb的java客戶端 beansdb4j
這是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兼容協議,大量可用客戶端。
本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!