NoSQL
NoSQL简介
NoSQL全称是Not Only SQL(不仅仅是SQL)它是一种非关系型数据库,相比传统SQL关系型数据库,它:
- 不保证关系数据的ACID特性
- 并不遵循SQL标准
- 消除数据之间关联性
乍一看,这玩意不比MySQL垃圾?我们再来看看它的优势:
- 远超传统关系型数据库的性能
- 非常易于扩展
- 数据模型更加灵活
- 高可用
这样,NoSQL的优势一下就出来了,这不就是我们正要寻找的高并发海量数据的解决方案吗!
NoSQL数据库分为以下几种:
- 键值存储数据库: 所有的数据都是以键值方式存储的,类似于我们之前学过的HashMap,使用起来非常简单方便,性能也非常高。
- 列存储数据库: 这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。
- 文档型数据库: 它是以一种特定的文档格式存储数据,比如JSON格式,在处理网页等复杂数据时,文档型数据库比传统键值数据库的查询效率更高。
- 图形数据库: 利用类似于图的数据结构存储数据,结合图相关算法实现高速访问。
其中我们要学习的Redis数据库,就是一个开源的键值存储数据库,所有的数据全部存放在内存中,它的性能大大高于磁盘IO,并且它也可以支持数据持久化,他还支持横向扩展、主从复制等。
实际生产中,我们一般会配合使用Redis和MySQL以发挥它们各自的优势,取长补短。
NoSQL 数据库
NoSQL 数据库描述
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库。
NoSQL 不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。
- 不遵循SQL标准。
- 不支持ACID。
- 远超于SQL的性能。
NoSQL 适用场景
- 对数据高并发的 IO (读写)
- 海量数据的读写
- 对数据高可扩展性的
NoSQL不适用场景
- 需要事务支持
- 基于sql的结构化查询存储,处理复杂的关系,需要即席查询。
- 用不着sql的和用了sql也不行的情况,请考虑用NoSql