日期:2014-05-16 浏览次数:20523 次
现如今nosql技术越来越流行,它的纯粹类似于map的key-value数据形式,是对关系数据库的一个很好的补充。
它无法进行多表的关联查询,对数据的一致性维护也不好,但它能够高效的对数据库进行并发读写,更适合当今的web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站。
?
而这里我研究的是couchbase,它是MemBase与couchDb的合并的产物,功能非常强大,而现在著名的draw something这个应用就是使用了couchbase来存储它少量的画图文件。
?
couchbase的官网是?http://www.couchbase.com,它现在运行java、c#、php等多种常用语言,用户们可以在该网站下载server使用,里面还有官方文档。
?
现在来说说java的使用
连接couchbase?
? ? List<URI> uris = new LinkedList<URI>();
// Connect to localhost or to the appropriate URI
uris.add(URI.create("http://127.0.0.1:8091/pools"));
CouchbaseClient client = null;
try {
client = new CouchbaseClient(uris, "default", "");
} catch (Exception e) {
System.err.println("Error connecting to Couchbase: "
+ e.getMessage());
System.exit(0);
}
?这就连接了数据库,对数据的所有操作都使用client。
其中 client = new CouchbaseClient(uris, "default", "");第一个参数是各个服用器的url(多服务器),default是默认的数据库名(当安装couchbase时会自动创建),第三个参数是该库的密码。default是数据库默认创建,没有密码。
?
下面说下client的常用方法
CASResponse casr = client.cas("caskey", casvalue, "new string value"); if (casr.equals(CASResponse.OK)) { System.out.println("Value was updated"); } else if (casr.equals(CASResponse.NOT_FOUND)) { System.out.println("Value is not found");} else if (casr.equals(CASResponse.EXISTS)) { System.out.println("Value exists, but CAS didn't match" );?
?