NoSQL(最初指“非SQL(non SQL)”、“非关系(non relational)”或“不仅是SQL(Not Only SQL)”),不遵循传统RDBMS模型的任何数据存储,数据是非关系型的,不同于之前学过的MySQL等关系型数据库。

NoSQL可以用描述任何一种数据文件,不具备传统关系型数据库的范式,NoSQL是非关系型设计的Database,主要针对当前互联网时代的复杂数据

为什么要使用NoSQL(Not Only SQL)数据库

1.对数据库高并发读写的需求

2.对海量数据的高效率存储和访问的需求

3.对数据库的高可扩展性和高可用性的需求

NoSQL的优势

1.大大增加扩展能力

2.不支持ACID

3.多样灵活的数据模型

4.减少CPU和IO的压力

ACID关系型数据库遵循ACID规则


A (Atomicity) 原子性
原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。比如银行转账,从A账户转100元至B账户,分为两个步骤:1)从A账户取100元;2)存入100元至B账户。这两步要么一起完成,要么一起不完成,如果只完成第一步,第二步失败,钱会莫名其妙少了100元。

C (Consistency) 一致性
一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。

I (Isolation) 独立性
所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。比如现有有个交易是从A账户转100元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的100元的

D (Durability) 持久性
持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。

CAP定理(CAP theorem)

  • 一致性(Consistency) (所有节点在同一时间具有相同的数据)
  • 可用性(Availability) (保证每个请求不管成功或者失败都有响应)
  • 分隔容忍(Partition tolerance) (系统中任意信息的丢失或失败不会影响系统的继续运作)

NoSQL适用场景

1.对数据高并发的读写

2.海量数据的读写

3.对数据高可扩张性的

(工作中用不着sql和用不了sql的情况下,请考虑用NoSQL)

NoSQL数据库有:Memcache,Redis,MogoDB

NoSQL数据库简单学习相关推荐

  1. python提取数据库nosql_用 Python 写一个 NoSQL 数据库

    本文译自 What is a NoSQL Database? Learn By Writing One In Python. 完整的示例代码已经放到了 GitHub 上, 请 点击这里, 这仅是一个极 ...

  2. nosql数据库学习总结

    大数据时代的数据库选择:SQL还是NoSQL? 执行大数据项目的企业面对的关键决策之一是使用哪个数据库,SQL还是NoSQL?SQL有着骄人的业绩,庞 大的安装基础;而NoSQL正在获得可观的收益,且 ...

  3. NoSQL数据库程序员应该在2019年学习的5大知识

    尽管Java或Web开发人员学习NoSQL数据库不是强制性的,但世界正朝着这个方向发展,Java和Web开发人员都应该熟悉NoSQL数据库. 如果您想知道NoSQL数据库是什么意思,那么这里是快速概述 ...

  4. 大数据开发学习:NoSQL数据库入门

    大数据处理,涉及到从数据获取到数据存储.数据计算的诸多环节,各个环节需要解决的问题不同,相关岗位要求的技能也不同.在数据存储阶段,对数据库选型是非常重要的一项工作.今天的大数据开发学习分享,我们就来聊 ...

  5. 【Redis6快速深入学习01】NoSQL数据库简介

    文章目录 1 NoSQL数据库简介 1.1 技术发展 1.2 NoSQL数据库 1.3 行式存储数据库(大数据时代) 1.4 图关系型数据库 1 NoSQL数据库简介 1.1 技术发展 技术的分类 解 ...

  6. Redis 学习笔记-NoSQL数据库 常用五大数据类型 Redis配置文件介绍 Redis的发布和订阅 Redis_事务_锁机制_秒杀 Redis应用问题解决 分布式锁

    1.NoSQL数据库 1.1 NoSQL数据库概述 NoSQL(NosQL = Not Only sQL ),意即"不仅仅是sQL",泛指非关系型的数据库.NoSQL不依赖业务逻辑 ...

  7. Mongodb学习总结(1)——常用NoSql数据库比较

    虽然SQL数据库是非常有用的工具,但经历了15年的一支独秀之后垄断即将被打破.这只是时间问题:被迫使用关系数据库,但最终发现不能适应需求的情况不胜枚举. 但是NoSQL数据库之间的不同,远超过两 SQ ...

  8. NoSql数据库简介及Redis学习

    NO-Sql数据库:Not Only不仅仅是SQL 定义:非关系型数据库:NoSQL用于超大规模数据的存储.(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据).这些类型的数据存储不需要固 ...

  9. 大数据学习(5)-- NoSQL数据库

    文章目录 目录 1.NoSQL的介绍 2.NoSQL产生的原因 2.1 web2.0 2.2 NoSQL兴起原因 3.NoSQL和关系数据库的区别 4.NoSQL的四大类型 4.1 键值数据库 4.2 ...

最新文章

  1. 如何在C#Windows控制台应用程序中更新当前行?
  2. 后面的参数_常用的JVM参数,你现在就记好
  3. boost::make_shared_noinit相关的测试程序
  4. ETL异构数据源Datax_部署前置环境_01
  5. nginx+tomcat7+memcached
  6. macOS修改Homebrew镜像
  7. 2019.08.26关于分页
  8. js table的所有td 按行合并
  9. java里赋值语句_java输入赋值语句
  10. 医宗金鉴自学指南_自学中医看什么书
  11. 【人工智能项目】sg2im文字转图像
  12. 为什么uzi排到古手羽就秒_Uzi排到古手羽秒退引热议?“网友发表看法,弹幕疑似给出答案”...
  13. 【最短路 搜索】JZOJ_4246 san
  14. iOS Safari调试webview时 页面空白或者闪退解决
  15. 帝国Empire采集-帝国如何免费采集
  16. apahce2+tomcat6整合 2010-06-28
  17. 苹果屏保壁纸_神经病手势时钟-手势数字时钟app下载android安卓版ios苹果版
  18. 解密盛大和陈天桥:显娱乐帝国雏形 缺迪斯尼精神
  19. 什么是线性可分离和不可分离
  20. 2011 明锐 CD 大众收音机 播放SD 卡顿问题

热门文章

  1. 【C语言】数据类型的扩充和截断
  2. Linux ping命令,检测网络是否连通
  3. 京东2021年618项目规划——附下载
  4. RTSP 协议漫谈,揭秘 RTSP 协议内幕
  5. vue的proxyTable的地址代理和重定向,配合nginx的地址代理问题
  6. Glide之GlideModule
  7. 关于hxxp //www hj234 com的问题
  8. java 声明和动态创建数组
  9. 【会议笔记】第五届中国健康信息处理大会(CHIP2019)Day02
  10. python爬虫(网页解析)