couchDB入门
无意翻到一本新书《CouchDB权威指南》
发现这就是传说中的NoSQL,看排第一的是mangodb,redis有些人说是,有些人说不是。
CouchDB的开发很天才,直接可以通过javascript来操作数据库。
这本书讲得很详细,附上这本书的英文电子版本:在线阅读
这个数据库算是一个现代化的软件,里面各种理念都很新颖,就算是当作一个玩具,也是一个很好的体验。
学会使用了curl的很多好用的功能。能理解很多http头的意义。并且CouchDB利用http文件头的信息来描述状态,做得很好,就是出现问题的时候,有些问题描述的不是很清晰。
特别是在大型网站架构这方面,做了很多的优化,不至于在这个数据库上面出现性能和安全的瓶颈。
用户体验也挺好的,就是它自带的sofa博客好像每次我加一篇文章,就会出现问题。
数据库架构:
内置服务器,数据库通讯主要是json。
每个数据库下面的不是表,而是文档(document),文档下面用的是json格式存储。
图片声音视频用的是这些媒体的meta信息,调用是需要访问特定的路径就好了。
当然底层还是使用的是b-tree的变体。
容易做备份,主从,复制,等各种负载和安全的措施。
在哈希一致性上做了很多的措施,几乎保证了不出现相同的数据id。
当然在效率上也做了优化,每次改动数据库的内容,数据库的索引只改变新增的,所以只有第一次查询费时多一些。
使用了MapReduce概念,可以很好的在hadoop上面运行。
问题:
出现的一个典型的问题是开启之后访问不了这个数据库,是因为在Centos下,这个软件和ruby的sinatra一样,绑定的是127.0.0.1,而不是localhost,或者::1,所以只能内部访问。可以修改配置文件/etc/couchdb/local.ini,把里面的ip地址127.0.0.1改为0.0.0.0即可。
CouchDB 官网