软考中级——NoSQL

CAP 理论和BASE 特性

CAP 理论

CAP 理论:简单地说,就是对于一个分布式系统,一致性(Consistency)、可用性和分区容忍性三个特点最多只能三选二。

  1. 一致性(Consistency):是指系统在执行了某些操作后仍处于一个一致的状态。
  2. 可用性(Availability):是指对数据的所有操作都有成功的返回。简言之,就是任何请求不管成功或失败都有响应。
  3. 分区容忍性(Partition tolerance):这一概念的前提是在网络发生故障的时候。在网络连接上,一些结点出现故障,使得原本连通的网络变成了一块一块的分区,若允许系统继续工作,那就是分区可容忍的。

ACID 理论

  1. 原子性(Atomicity):事务的所有操作在数据库中要么都做要么都不做。
  2. 一致性(Consistency):一个事务独立执行的结果,将保持数据的一致性,即数据不会因为事务的执行而遭受破坏。
  3. 隔离性(Isolation):一个事务的执行不能被其他事务干扰。并发事务在执行过程中可能会对同一数据进行操作,这些事务的操作应该不会相互干扰,是相互隔离的。
  4. 持久性(Durability):一个事务一旦提交,它对数据库的改变必须是永久的, 即使系统出现故障也是如此。

BASE 理论

由于 CAP 理论的存在,为了提高性能,出现了 ACID 的一种变种 BASE,它是一个弱一致性的理论,只要求最终一致性。

  • BA (Basically Available):基本可用

  • S (Soft state):软状态,可以理解为“无连接的”的,而与之相对应的是“面向连接”的。

  • E (Eventual consistency):最终一致性,最终整个系统看到的数据是一致的。

NoSQL数据库的种类

分类 典型产品 应用场景 优点 缺点
文档存储 MongoDB、CouchDB Web 应用,存储面向文档和半结构化数据 结构灵活,可以根据value构建索引,处理能力强 缺乏统一的查询语法;无事务处理能力
键值存储 Redis 内容缓存,如会话、配置、文件、参数等 扩展性好,灵活性强,大量操作时性能高 数据无结构化,通常被当成字符串或者二进制数据,通过键查询值
列存储 Bigtable、HBase、Cassandra 分布式数据存储和管理 可扩展性强,查找速度快,复杂性低 功能局限;不支持事务的强一致性
图存储 Neo4j、OrientDB 社交网络、推荐系统、专注于构建系统图谱 支持复杂的图形算法 复杂性高,只能支持一定的数据规模
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇