CouchBase是一款非关系型JSON文档数据库,其最大的竞争对手是MongoDB,且被MongoDB远远的甩在身后。如果MongoDB闭源的话,CouchBase将是最大的受益者。
CouchBase拥有社区版和商业版两个版本,虽然都可以部署在云端、Kubernates以及其他的复杂混合配置中,但是社区版和商业版还是有很大部分的差距,所以Couchbase注定要走商业那条路的。
Couchbase Server 查询语言 N1QL,是一款为支持 JSON 文档数据库所设计的 SQL 语言,且还具备扩展分析的作用,N1QL 结合了 SQL 的强大功能以及 JSON 数据模型的灵活性,为应用程序的开发人员提供了一种富有表现力、功能强大且完整的声明性语言,可用于查询、转换和操作 JSON 数据,同时 Couchbase 还支持键值数据访问和全文搜索。
CouchBase设计原则:
以内存和网络为中心的体系结构、工作负载隔离以及对所有数据查询的异步支持
CouchBase的结构:
下图是Couchbase中的数据结构,请注意看这个变态,它会在你的嵌套对象下面主动建立一个content的键,人为增加了结构的复杂度。目前如果使用SpringDataCouchbase的话,查询嵌套的对象需要使用以下方式来获取嵌套对象的值。
@Query("SELECT META().id AS __id, META().cas AS __cas,
fromRoute.content as fromRoute,routeName,status FROM gate_way")
Bucket: 相当于关系型数据库中的库,保存JSON文档。
vBucket: 相当于Key的子集,保存的是key的值, CouchBase是JSON型数据库,没有表的概念。
节点: 物理或虚拟机,承载CouchBase Server的单个实例。
集群: 节点组,同步复制发生在集群节点之间。
Couchbase 支持一键查询和检索数据关联值,该值可以是 JSON 文档或 Blob。此外还可以使用类似 SQL 的 N1QL 语言或全文搜索来查询,
前提是 bucket 必须有支持查询的索引。
由于众所周知的原因,目前Couchbase的用户和文档还特别少,希望本文能够给零基础的用户带来一点帮助。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341