科技小数据|NoSQL数据库,Couchbase完美的分布式

简介
官网地址:https://www.couchbase.com/
Couchbase是一个较新的、发展迅速的nosql数据库技术 。 2014年 , viber宣布使用Couchbase替换Mongodb , 以适应10亿级的用户量 , 目前 , Couchbase已大量运用于生产环境 , 国内使用的公司主要有新浪 , 腾讯等 。
Couchbase是CouchDB和MemBase的合并 。 而memBase是基于Memcached的 。 因此Couchbase联合了Couchbase的简单可靠和memcached的高性能 , 以及membase的可扩展性 。
灵活的数据模型:Couchbase中使用json格式存储对象和对象之间的关系 。
Nosql数据库的一个特性是不需要定义数据结构 , 在Couchbase中 , 数据可以存储为key-value对或者json文档 , 不需要预先定义严格的格式 , 由于这种特性 , couchbase支持以scaleout(水平扩展)方式扩展数据量 , 提升io性能 , 只需要在集群中添加更多的服务器就行了 。 相反 , 关于数据库管理系统scaleup(纵向扩展) , 通过加更多的CPU , 内存和硬盘以扩展容量 。
科技小数据|NoSQL数据库,Couchbase完美的分布式
文章图片
Couchbase可用于单机环境 , 也可以和其他服务器一起提供分布式的数据存储 。
特点
CouchBase是在memcached和redis之类缓存组件的基础上发展而来的 , 被称作为可能是最好的缓存系统 。 所以必然能满足之前的前辈所满足不了的地方 。 传统的缓存组件包括memcached和redis有着这种或者那种的缺点:
Cluster支持完善度不够或者直接没有Cluster
没有良好的高可用性机制 , 持久化支持的亦不是很完善
扩容和故障恢复能操作维护复杂
其他
而CouchBase则对上面的一些缺点都有着良好的支持 。 或者说
CouchBase所提供的任何单一功能 , 在市面上基本上都能找到一款数据库能够满足 。 但是这些数据库实际使用的话总是会有各种各样的妥协 , 性能很好的话 , 扩展性可能很差之类的 。 而CouchBase的目标就是建立一个大系统 , 各种功能都包含可用 , 所谓接近完美的数据库 。
技术特征
数据存储
Couchbase通过使用buckets提供数据管理服务 , buckets相当于关系数据库中的库 , Couchbase中没有表的概念 , 保存数据时 , 先建bucket , 然后就直接插入数据了 。 buckets可以供集群中的多个客户端程序访问 。 Couchbase通过Buckets组织 , 管理和分析数据资源 。
Couchbase中有两种类型的数据bucket , 当启动Couchbase服务的时候 , 可以选择需要的类型 。
1)memcachedbuckets 。 只将数据存储在内存中 。 提供了一个分布式的(横向扩展) , 纯内存的 , key-value缓存 。 Memcachedbuckets设计用于关系数据库的缓存 , 可以缓存经常访问的数据 , 由此减少web程序中数据库的查询次数 。
2)couchbasebuckets 。 存数据在内存和硬盘 。 提供高可用性和可动态重新配置的分布式数据存储 , 提供数据持久化和复制服务 。 couchbasebuckets100%兼容开源的分布式缓存memcached
内存分配
ServerQuota:
Couchbase服务初始化时会给服务器分配内存限额 , 表示这个服务器中可用的最大内存 , 是node级的 。 初始配置在集群中的第一台服务器(node)上 , 所有服务器的内存配额都是一样的 。 例如集群中有10台服务器 , 服务器内存配额是16G , 整个集群中共160G可用内存 。 如果需要加2个新的服务器 , 每个新的服务器需要16G的可用内存 , 集群中可用的内存数将是192G 。
BucketQuota:
Bucket内存配额是分配给一个bucket的可用内存 。 配置在每个节点上 , 是从serverquota中分配出去的 。 例如 , 如果你创建了一个新的bucket , 限额是1GB , 在10个节点的集群中 , 汇总后会有10G 。 如果添加两个节点 , 集群中汇总后会有12G的bucket限额 。