非关系型数据库NoSQL

非关系型数据库NoSQL

1.CAP理论和Base特性

1.1CAP理论

简单的说对于一个分布式系统要满足一致性 可用性和分区容错性

一致性:系统在执行了某些操作之后仍然可以处于一个一致性的状态

可用性:是指对数据的所有操作都有成功的返回 任何请求不管成功还是失败都能有响应

分区容错性:在网络发生故障的时候 在网络连接上一些节点出现问题故障 使得原本的联通的网络变成了一块一块的分区 若系统继续工作这些分区是可容忍的

1.2ACID

原子性:事务的操作要么都做都不做

一致性:一个事务的执行结果必须从一个一致性状态变成另外一个一致性的状态

隔离性:一个事务的执行不能被其他的事务干扰 并发事务在执行的时候可能对同一数据进行操作这些事务的操作应该不会相互干扰是相互隔离的

持久性:一个事务一旦提交 他对数据库的改变必然是永久的 及即使系统出现故障也是如此的。

1.3BASE理论

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

BA基本可用

S:软状态 soft state ,无连接的

E:最终一致性,最终整个系统看到的数据是一致性的

2.各种nosql数据库的分类和特点

2.1NoSQL分类

文档:

mongodb couchDB

wen应用 存储面向文档的半结构化数据

结构灵活 可以根据value设置索引

缺乏统一的查询语法 无事务

键值:

Redis

内容缓存 会话 配置文件 参数等

扩展性好 灵活 大量操作性能高

数据无结构化 通常被当作字符串或者二进制文件 通过键查询值

列存储:

hbase

分布式数据存储和管理

可扩展性强 查询速度快 复杂性底

功能局限不支持事务

图存储

Neo4j

社交网络 推荐系统 专注于构建系统图谱

支持复杂的图形算法

复杂性高 只能支持一定的数据规模

相关推荐
小陈工3 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
科技小花8 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸8 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
D4c-lovetrain8 小时前
linux个人心得22 (mysql)
数据库·mysql
阿里小阿希9 小时前
CentOS7 PostgreSQL 9.2 升级到 15 完整教程
数据库·postgresql
荒川之神9 小时前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle
做个文艺程序员9 小时前
MySQL安全加固十大硬核操作
数据库·mysql·安全
不吃香菜学java9 小时前
Redis简单应用
数据库·spring boot·tomcat·maven
一个天蝎座 白勺 程序猿9 小时前
Apache IoTDB(15):IoTDB查询写回(INTO子句)深度解析——从语法到实战的ETL全链路指南
数据库·apache·etl·iotdb
不知名的老吴9 小时前
Redis的延迟瓶颈:TCP栈开销无法避免
数据库·redis·缓存