Couchbase印象(架构特性)

2022-04-11 00:00:00 数据 文档 更新 樱花 盛开

Couchbase印象(架构特性)

  • 面向文档 保存的字节流总有一个 DOCUMENT ID(Object_ID)

  • 高并发性,高灵活性,高拓展性,容错性好

  • 面向文档的集群存储系统

  • 每个文档用一个的Doc ID

  • 均衡负载

Buckets vs vBuckets

1. Buckets

  • couchbase的存储逻辑单元叫Bucket

  • 每个bucket有个名字

  • couchbase 一个节点当前限制10及以下buckets

  • bucket 有两种类型 couchbase和memcached

  • bucket有可选的密码控权 SASL authentication

  • 每个bucket有可控的内存配额和复制策略设定,独立可监控和管理

2. vBuckets

  • 主要用来管理维护集群节点之间的bucket分布和路由

  • doc id的算法使分布式成为可能

Time To Live (TTL)

  • 可用于控制过期时间(默认为一小时)

  • 可用于seesion缓存等功能

  • 后台管理过期,自动删除过期数据,释放内存和硬盘

数据一致性

并发性

Views, Indexs, Queries

Views
  • 这里的views概念完全和SQL的view概念不同

  • views作为数据翻译转换层,将数据转换为特定格式结构的数据形式如JSON

  • views 通过 map/reduce功能完成, map将文档结构转换为表输出结构, reduce用来做计数,统计等聚集功能

indexes
  • 每当views建立时, 就会建立indexes, index的更新和以往的数据库索引更新区别很大。 比如现在有1W数据,更新了200条,索引只需要更新200条,而不需要更新所有数据,map/reduce功能基于index的懒更新行为,大大得益。

  • 建立views和index后可以用来Queries

用户用例

  • 替代memcached的缓存层, 提供兼容memcached协议接口

  • Amazon S3类似服务

  • session

安装、管理 与客户端接口

三思而后行(安装初始化)

数据存储的路径

Couchbase数据需要持久化到硬盘,需要分配硬盘空间和路径,在Linux与Windows默认是couchbase安装路径

Server Quota(服务缓存层的内存分配)

Couchbase的数据会被缓存,服务层的缓存内存配额配置被各个节点所共享。 如是:现在有一个节点(Node)分配的是2G RAM,那么在加三个节点后,就增加6G RAM来还缓存数据了 ,故一共有8G RAM被分配用来缓存了。

Bucket Quota

集群可以用多个bucket,bucket用来保存一组特别数据或应用,如一个bucket用来做session,另一个bucket用来做做副本。bucket RAM quota的策略,对server quota设定是相辅相成的莲藕关系,很大程度影响cache的内存配额。

安装与管理

  1. Memory Size

  2. Replicas

    默认bucket副本是3个。 index replica 开启选项 默认的选项,couchbase的策略比较灵活。只有当数据和节点足够多时,才会开始备份。

  3. Flush

    禁用或开启(默认禁用),用于清空bucket的数据

  4. Auto-compaction

    持久化的数据和view,index,长期会产生碎片,开启功能时,会自动整理硬盘数据碎片

客户端接口

  • Python

    > pip install couchbase
    
  • PHP

    1. 相关文章