NoSQL数据库(非关系型数据库)与NewSQL
文章目录
NoSQL 是 Not Only SQL 的缩写,意思是“不仅仅有 SQL”,而不是大家通常理解的“不使用 SQL”。
NoSQL 数据库也即非关系型数据库,它是在大数据的时代背景下产生的,它可以处理分布式、规模庞大、类型不确定、完整性没有保证的“杂乱”数据,这是传统的关系型数据库远远不能胜任的。
NoSQL 数据库并没有一个统一的模型,两种不同的 NoSQL 数据库之间的差异程度,远远超过两种关系型数据库之间的不同。可以说,NoSQL 数据库各有所长,一个优秀的 NoSQL 数据库必然特别适用于某些场合,在这些场合中会远远胜过关系型数据库或者其它 NoSQL 数据库。
数据库是什么?
随着互联网技术的发展,数据库系统管理的数据及其应用环境发生了很大的变化,主要表现为应用领域越来越广泛,数据种类越来越复杂和多样,而且数据量剧增。
在大数据时代的场景下,传统的关系型数据库已无法满足用户需求,NoSQL 数据库应运而生。
在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。
数据库技术是研究数据库的结构、存储、设计、管理和使用的一门科学。数据库系统(Database System,DBS)是采用数据库技术的计算机系统,它是由计算机硬件、软件和数据资源组成的系统,能实现有组织的、动态的存储大量关联数据,并方便多用户访问。
数据库系统由用户、数据库应用程序、数据库管理系统(DataBase Management System,DBMS)和数据库(DataBase,DB)组成。 如图所示。
数据库
数据库是长期存储在计算机内的、有组织的、统一管理的、可以变现为多种形式的、可共享的数据集合。
在这里:
- “共享”是指数据库中的数据,可为多个不同的用户、使用多种不同的语言、为了不同的目的而同时存取,甚至同一数据也可以同时存取;
- “集合”是指某特定应用环境中的各种应用的数据及其之间的联系全部集中按照一定的结构形式进行存储。
数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户所共享。
在数据库技术中,用数据模型(Data Model)的概念描述数据库的结构和语义,对现实世界的数据进行抽象。数据库根据不同的逻辑模型可分成三种:层次型、网状型和关系型
。
- 层次型数据模型
早期的数据库多采用层次型数据模型,称为层次型数据库,它用树形(层次)结构表示实体类型及实体间的联系。在这种树形结构中,数据按自然的层次关系组织起来,以反映数据之间的隶属关系,树中的节点是记录类型,每个非根节点都只有一个父节点,而父节点可同时拥有多个子节点,父节点和子节点的联系是 1:N 的联系。
正因为层次型数据模型的构造简单,在多数的实际问题中,数据间关系如果简单地通过树形结构表示,则会造成数据冗余度过高, 所以层次型数据模型逐渐被淘汰。 - 网状型数据模型
采用网状型数据模型的数据库称为网状型数据库,通过网络结构表示数据间联系,这种数据模型的基本特征是, 节点数据之间没有明确的从属关系,一个节点可与其他多个节点建立联系,即节点之间的联系是任意的;任何两个节点之间都能发生联系,可表示多对多的关系。
在网状型数据模型中,数据节点之间的关系比较复杂,而且随着应用范围的扩展,数据库的结构变得越来越复杂,不利于用户掌握。 - 关系型数据模型
关系型数据库通过满足一定条件的二维表格来表示实体集合以及数据间联系的一种模型,关系型数据模型具有坚实的数学基础与理论基础,使用灵活方便,适应面广,因此发展十分迅速。目前流行的一些数据库系统,如 Oracle、Sybase、Ingress、Informix 等都属于关系型数据库。
数据库管理系统
数据库管理系统(DBMS)
是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。DBMS 是一个庞大且复杂的产品,几乎都是由软件供应商授权提供的,如 Oracle 公司的 Oracle 和 MySQL、IBM 公司的 DB2、Microsoft 公司的 Access 和 SQL Server,这些 DBMS 占据了大部分的市场份额。
DBMS 对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过 DBMS 访问数据库中的数据,数据库管理员也通过 DBMS 进行数据库的维护工作。DBMS 允许多个应用程序或多个用户使用不同的方法,在同一时刻或不同时刻去建立、修改和询问数据库。
DBMS 的主要功能如下。
- 数据定义
DBMS 提供数据定义语言(Data Definition Language, DDL
),供用户定义、创建和修改数据库的结构。DDL 所描述的数据库结构仅仅给出了数据库的框架,数据库的框架信息被存放在系统目录中。 - 数据操纵
DBMS 提供数据操纵语言(Data Manipulation Language, DML
),实现用户对数据的操纵功能,包括对数据库数据的插入、删除、更新等操作。 - 数据库的运行管理
DBMS 提供数据库的运行控制和管理功能,包括多用户环境下的事务的管理和自动恢复、并发控制和死锁检测、安全性检查和存取控制、完整性检查和执行、运行日志的组织管理等。这些功能保证了数据库系统的正常运行。 - 数据组织、存储与管理
DBMS 要分类组织、存储和管理各种数据,就需要确定以何种文件结构和存取方式来组织这些数据,实现数据之间的联系。数据组织和存储的基本目标是提高存储空间的利用率,选择合适的存取方法提高存取效率。 - 数据库的维护
数据库的维护包括数据库的数据载入、转换、转储、恢复,数据库的重组织和重构,以及性能监控分析等功能,这些功能分别由各个应用程序来完成。 - 通信
DBMS 有接口负责处理数据的传送。这些接口与操作系统的联机处理以及分时系统和远程作业输入相关。网络环境下的数据库系统还应该包括 DBMS 与网络中其他软件系统的通信功能以及数据库之间的互操作功能。
DBMS 是数据库系统的核心,是管理数据库的软件。DBMS 是实现把用户视角下的、抽象的逻辑数据处理,转换成为计算机中具体的物理数据处理的软件。有了 DBMS,用户可以在抽象意义下处理数据,而不必考虑这些数据在计算机中的布局和物理位置。
应用程序
数据库系统还包括数据库应用程序。应用程序最终是面向用户的,用户可以通过应用程序输入和处理数据库中的数据。
例如,在学校选课系统中,管理员用户可以创建课程信息,学生用户可以修改课程信息,应用程序将这些操作提交给 DBMS,由 DBMS 将这种用户级别的操作转化成数据库能识别的 DDL。
应用程序还能够处理用户的查询,比如学生查询星期一有哪些课程,应用程序首先生成一个课程查询请求,并发送给 DBMS,DBMS 从数据库中查询结果并格式化后返回给用户。
关系型数据库是什么?
关系型数据库建立在关系型数据模型的基础上,是借助于集合代数等数学概念和方法来处理数据的数据库。
在关系型数据库中,实体以及实体间的联系均由单一的结构类型来表示,这种逻辑结构是一张二维表。
关系型数据库以行和列的形式存储数据,这一系列的行和列被称为表,一组表组成了数据库。
属性说明:
- 二维表:也称为关系,它是一系列二维数组的集合,用来代表与存储数据对象之间的关系。它由纵向的列和横向的行组成。
- 行:也叫元组或记录,在表中是一条横向的数据集合,代表一个实体。
- 列:也叫字段或属性,在表中是一条纵行的数据集合。列也定义了表中的数据结构。
- 主属性:关系中的某一属性组,若它们的值唯一地标识一个记录,则称该属性组为主属性或主键。主属性可以是一个属性,也可以由多个属性共同组成。在图 1-5 中,学号是学生信息表的主属性,但是课程信息表中,学号和课程号共同唯一地标识了一条记录,所以学号和课程号一起组成了课程信息表的主属性。
结构化查询语言
关系型数据库的核心是其结构化的查询语言(Structured Query Language, SQL),SQL 涵盖了数据的查询、操纵、定义和控制,是一个综合的、通用的且简单易懂的数据库管理语言。同时 SQL 又是一种高度非过程化的语言,数据库管理者只需要指出做什么,而不需要指出该怎么做即可完成对数据库的管理。
SQL 包含以下四个部分。
-
数据定义语言(DDL
)
DDL 包括 CREATE、DROP、ALTER 等动作。在数据库中使用 CREATE 来创建新表,DROP 来删除表,ALTER 负责数据库对象的修改。 -
数据查询语言(Data Query Language, DQL
)
DQL 负责进行数据查询,但是不会对数据本身进行修改。
DQL的语法结构如下:
SELECT FROM 表名1,表2
where 查询条件 #可以组合 and、or、 not、 =、between、and、in、like 等;
group by 分组字段
having (分组后的过滤条件)
order by 排序字段和规则;
-
数据操纵语言(Data Manipulation Language, DML
)
DML 负责对数据库对象运行数据访问工作的指令集,以 INSERT、UPDATE、DELETE 三种指令为核心,分别代表插入、更新与删除。 -
数据控制语言(Data Control Language, DCL
)
DCL 是一种可对数据访问权进行控制的指令。它可以控制特定用户账户对查看表、预存程序、用户自定义函数等数据库操作的权限,由 GRANT 和 REVOKE 两个指令组成。
DCL 以控制用户的访问权限为主,GRANT 为授权语句,对应的 REVOKE 是撤销授权语句。
关系型数据库的优缺点
关系型数据库的优点
- 容易理解:二维表结构非常贴近逻辑世界的概念,关系型数据模型相对层次型数据模型和网状型数据模型等其他模型来说更容易理解。
- 使用方便:通用的 SQL 使用户操作关系型数据库非常方便。
- 易于维护:丰富的完整性大大减少了数据冗余和数据不一致的问题。关系型数据库提供对事务的支持,能保证系统中事务的正确执行,同时提供事务的恢复、回滚、并发控制和死锁问题的解决。
关系型数据库的缺点
随着各类互联网业务的发展,关系型数据库难以满足对海量数据的处理需求,存在以下不足。
- 高并发读写能力差:网站类用户的并发性访问非常高,而一台数据库的最大连接数有限,且硬盘 I/O 有限,不能满足很多人同时连接。
- 对海量数据的读写效率低:若表中数据量太大,则每次的读写速率都将非常缓慢。
- 扩展性差:在一般的关系型数据库系统中,通过升级数据库服务器的硬件配置可提高数据处理的能力,即纵向扩展。但纵向扩展终会达到硬件性能的瓶颈,无法应对互联网数据爆炸式增长的需求。还有一种扩展方式是横向扩展,即采用多台计算机组成集群,共同完成对数据的存储、管理和处理。这种横向扩展的集群对数据进行分散存储和统一管理,可满足对海量数据的存储和处理的需求。但是由于关系型数据库具有数据模型、完整性约束和事务的强一致性等特点,导致其难以实现高效率的、易横向扩展的分布式架构。
NoSQL数据库的优势有哪些?
NoSQL 数据库类型多样,可满足不同场景的应用需求,因此取得了巨大的成功。
NoSQL 数据库基本理念是以牺牲事务机制和强一致性机制,来获取更好的分布式部署能力和横向扩展能力,创造出新的数据模型,使其在不同的应用场景下,对特定业务数据具有更强的处理性能。
其主要优势如下。
- 灵活的数据模型
开发者希望使用非常灵活的数据库,容纳新的数据类型,并且不会被第三方数据提供商的数据结构变化所影响。NoSQL 数据库提供的数据模型则能很好地满足这种需求,各种应用可以通过这种灵活的数据模型存储数据而无须修改表;或者只需增加更多的列,无须进行数据的迁移。 - 可伸缩性强
NoSQL 数据库从一开始就是分布式、横向扩展的,因此非常适合互联网应用分布式的特性。
在互联网应用中,当数据库服务器无法满足数据存储和数据访问的需求时,只需要增加多台服务器,将用户请求分散到多台服务器上,即可减少单台服务器的性能瓶颈出现的可能性。 - 自动分片
由于关系型数据库存储的是结构化的数据,所以通常采用纵向扩展,即单台服务器要持有整个数据库来确保可靠性与数据的持续可用性。这样做的代价是非常昂贵的,而且扩展也会受到限制。针对这种问题的解决方案就是横向扩展,即添加服务器而不是扩展单台服务器的处理能力。
NoSQL 数据库通常都支持自动分片,这意味着它们会自动地在多台服务器上分发数据,而不需要应用程序增加额外的操作。 - 自动复制
在 NoSQL 数据库分布式集群中,服务器会自动对数据进行备份,即将一份数据复制存储在多台服务器上。因此,当多个用户访问同一数据时,可以将用户请求分散到多台服务器中。
同时,当某台服务器岀现故障时,其他服务器的数据可以提供备份,即 NoSQL 数据库的分布式集群具有高可用性与灾备恢复的能力。
分布式数据库有哪些特点?
分布式系统的核心理念是让多台服务器协同工作,完成单台服务器无法处理的任务,尤其是高并发或者大数据量的任务。
分布式数据库是数据库技术与网络技术相结合的产物,它通过网络技术将物理上分开的数据库连接在一起,进行逻辑层面上的集中管理。
在分布式数据库系统中,一个应用程序可以对数据库进行透明操作,数据库中的数据分别存储在不同的局部数据库中,由不同机器上不同的 DBMS 进行管理,其的体系结构如下图所示。
它处理数据的基本特点如下。
- 分布的透明管理
- 复制数据的透明管理
- 事务的可靠性
CAP理论是什么?
CAP 理论是针对分布式数据库而言的,它是指在一个分布式系统中,一致性(Consistency, C)、可用性(Availability, A)、分区容错性(Partition Tolerance, P
)三者不可兼得。
一致性(C)
一致性是指“all nodes see the same data at the same time”,即更新操作成功后,所有节点在同一时间的数据完全一致。
一致性可以分为客户端和服务端两个不同的视角:
从客户端角度来看,一致性主要指多个用户并发访问时更新的数据如何被其他用户获取的问题;
从服务端来看,一致性则是用户进行数据更新时如何将数据复制到整个系统,以保证数据的一致。
一致性是在并发读写时才会出现的问题,因此在理解一致性的问题时,一定要注意结合考虑并发读写的场景。
可用性(A)
可用性是指“reads and writes always succeed”,即用户访问数据时,系统是否能在正常响应时间返回结果。
好的可用性主要是指系统能够很好地为用户服务,不出现用户操作失败或者访问超时等用户体验不好的情况。在通常情况下,可用性与分布式数据冗余、负载均衡等有着很大的关联。
分区容错性(P)
分区容错性是指“the system continues to operate despite arbitrary message loss or failure of part of the system”,即分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。
分区容错性和扩展性紧密相关。在分布式应用中,可能因为一些分布式的原因导致系统无法正常运转。分区容错性高指在部分节点故障或出现丢包的情况下,集群系统仍然能提供服务,完成数据的访问。分区容错可视为在系统中采用多副本策略。
相互关系
CAP 理论认为分布式系统只能兼顾其中的两个特性,即出现 CA、CP、AP 三种情况,如图所示。
总结
在实践中,可根据实际情况进行权衡,或者在软件层面提供配置方式,由用户决定如何选择 CAP 策略。
CAP 理论可用在不同的层面,可以根据 CAP 原理定制局部的设计策略,例如,在分布式系统中,每个节点自身的数据是能保证 CA 的,但在整体上又要兼顾 AP 或 CP。
ACID原则是什么?
ACID 是关系型数据库的事务机制需要遵守的原则
。事务是一个一致和可靠计算的基本单元,由作为原子单元执行的一系列数据库操作组成。数据库库一般在启动时会提供事务机制,包括事务启动、停止、取消或回滚等。
关系型数据库支持事务的 ACID 原则,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)
,这四种原则保证在事务过程当中数据的正确性,具体描述如下。
原子性(A)
一个事务的所有系列操作步骤被看成一个动作,所有的步骤要么全部完成,要么一个也不会完成。如果在事务过程中发生错误,则会回滚到事务开始前的状态,将要被改变的数据库记录不会被改变。
一致性(C)
一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏,即数据库事务不能破坏关系数据的完整性及业务逻辑上的一致性。
隔离性(I)
主要用于实现并发控制,隔离能够确保并发执行的事务按顺序一个接一个地执行。通过隔离,一个未完成事务不会影响另外一个未完成事务。
持久性(D)
一旦一个事务被提交,它应该持久保存,不会因为与其他操作冲突而取消这个事务。
从事务的四个特性可以看到关系型数据库是要求强一致性的,但是这一点在 NoSQL 数据库中是重点弱化的机制。原因是当数据库保存强一致性时,很难保证系统具有横向扩展和可用性的优势,因此针对分布式数据存储管理只提供了弱一致性的保障,即 BASE 原理。
BASE原理与最终一致性
BASE 理论是针对 NoSQL 数据库而言的,它是对 CAP 理论中一致性(C)和可用性(A)进行权衡的结果,源于提出者自己在大规模分布式系统上实践的总结。其核心思想是无法做到强一致性,但每个应用都可以根据自身的特点,采用适当方式达到最终一致性。
基本可用(Basically Available)
基本可用指分布式系统在出现故障时,系统允许损失部分可用性,即保证核心功能或者当前最重要功能可用。
对于用户来说,他们当前最关注的功能或者最常用的功能的可用性将会获得保证,但是其他功能会被削弱。
软状态(Soft-state)
软状态允许系统数据存在中间状态,但不会影响系统的整体可用性,即允许不同节点的副本之间存在暂时的不一致情况。
最终一致性(Eventually Consistent)
最终一致性要求系统中数据副本最终能够一致,而不需要实时保证数据副本一致。例如,银行系统中的非实时转账操作,允许 24 小时内用户账户的状态在转账前后是不一致的,但 24 小时后账户数据必须正确。
最终一致性是 BASE 原理的核心
,也是 NoSQL 数据库的主要特点,通过弱化一致性,提高系统的可伸缩性、可靠性和可用性。而且对于大多数 Web 应用,其实并不需要强一致性,因此牺牲一致性而换取高可用性,是多数分布式数据库产品的方向。
最终一致性可以分为客户端和服务端两个不同的视角。
从客户端的角度看
从客户端来看,一致性主要指的是多并发访问时更新过的数据如何获取的问题,最终一致性有以下 5 个变种。
上述最终一致性的不同方式可以进行组合,例如,单调读一致性和“读己之所写”一致性就可以组合实现。从实践的角度来看,这两者的组合读取自己更新的数据,一旦读取到最新的版本,就不会再读取旧版本,对基于此架构上的程序开发来说,会减少很多额外的烦恼。
从服务器的角度看
从服务端来看,如何尽快地将更新后的数据分布到整个系统,降低达到最终一致性的时间窗口,是提高系统的可用度和用户体验度非常重要的方面。
分布式数据系统有以下特性:
- N 为数据复制的份数。
- W 为更新数据时需要进行写操作的节点数。
- R 为读取数据的时候需要读取的节点数。
如果 W+R>N,写的节点和读的节点重叠,则是强一致性。例如,对于典型的一主一备同步复制的关系型数据库(N=2, W=2,R=1),则不管读的是主库还是备库的数据,都是一致的。
如果 W+R≤N,则是弱一致性。例如,对于一主一备异步复制的关系型数据库(N=2,W=1,R=1),如果读的是备库,则可能无法读取主库已经更新过的数据,所以是弱一致性。
对于分布式系统,为了保证高可用性,一般设置 N≥3。设置不同的N、W、R 组合,是在可用性和一致性之间取一个平衡,以适应不同的应用场景。
如果N=W 且 R=1,则任何一个写节点失效,都会导致写失败,因此可用性会降低。但是由于数据分布的 N 个节点是同步写入的,因此可以保证强一致性。
如果 N=R 且 W=1,则只需要一个节点写入成功即可,写性能和可用性都比较高。但是读取其他节点的进程可能不能获取更新后的数据,因此是弱一致性。在这种情况下,如果 W<(N+1)/2,并且写入的节点不重叠,则会存在写冲突。
NoSQL数据库有哪些?
关系型数据库产品很多,如 MySQL、Oracle、Microsoft SQL Sever 等,但它们的基本模型都是关系型数据模型。NoSQL 并没有统一的模型,而且是非关系型的。
常见的 NoSQL 数据库包括键值数据库、列族数据库、文档数据库和图形数据库,其具体分类和特点如表所示。
NoSQL 数据库并没有一个统一的架构,两种不同的 NoSQL 数据库之间的差异程度,远远超过两种关系型数据库之间的不同。
可以说,NoSQL 数据库各有所长,一个优秀的 NoSQL 数据库必然特别适用于某些场合或者某些应用,在这些场合中会远远胜过关系型数据库和其他的 NoSQL 数据库。
常见的 NoSQL 数据库分为以下几种。
1) 键值数据库
这一类数据库主要会使用到一个散列表,这个表中有一个特定的键和一个指针指向特定的数据。
键值模型对于 IT 系统来说,其优势在于简单、易部署。键值数据库可以按照键对数据进行定位,还可以通过对键进行排序和分区,以实现更快速的数据定位。
2) 列族数据库
列族数据库通常用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列,如图所示。
此列族数据库表中由两行组成,每一行都有关键字 Row Key,每一行由多个列族组成,即 Column-Family-1 和 Column-Family-2,而每个列族由多个列组成。
3) 文档数据库
文档数据库的灵感来自 Lotus Notes 办公软件,它与键值数据库类似。该类型的数据模型是版本化的文档,文档以特定的格式存储,如 JSON。
文档数据库可以看作键值数据库的升级版,允许之间嵌套键值,如图所示。
文档数据库比键值数据库的查询效率更高, 因为文档数据库不仅可以根据键创建索引,同时还可以根据文档内容创建索引。
4) 图形数据库
图形数据库来源于图论中的拓扑学,以节点、边及节点之间的关系来存储复杂网络中的数据,如图所示。
这种拓扑结构类似 E-R 图,但在图形模式中,关系和节点本身就是数据,而在 E-R 图中,关系描述的是一种结构。
内存数据库是什么?
内存数据库主要是把磁盘的数据加载到内存中进行相应操作。
与直接读取磁盘数据相比,内存的数据读取速度要高出几个数量级,因此,将数据保存在内存中能够极大地提高应用的性能。
内存数据库改变了磁盘数据管理的传统方式,基于全部数据都在内存中的特点重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的升级,因此,其数据处理速度一般比传统数据库的数据处理速度快几十倍。
内存数据库的最大特点是其应用数据常驻内存中,即活动事务只与实时内存数据库的内存进行数据交流。
常见的内存数据库有 Memcached、Redis、SQLite、Microsoft SQL Server Compact 等。
Memcached入门教程
Redis入门
Redis 是一个开源的、高性能的、键值对内存数据库。它通过提供多种键值数据类型来满足不同场景下的存储需求,并借助许多高层级的接口使其可以胜任如缓存、队列系统等不同的角色。
图形数据库是什么?
Neo4j数据库入门教程
Java操作Neo4j数据库(附带源码)
NewSQL数据库是什么?
前面探讨了 NoSQL 数据库的相关技术,NoSQL 数据库能够很好地应对海量数据的挑战,为用户提供可观的可扩展性和灵活性,但是它也有缺点:
NoSQL 数据库不支持 ACID 特性, 在很多场合下,ACID 特性使系统在中断的情况下也能够保证在线事务的准确执行;
大多数 NoSQL 数据库提供的功能比较简单,这就需要用户在应用层添加更多的功能;
NoSQL 数据库没有统一的查询语言,不支持 SQL 查询,这也在一定程度上增加了开发者的负担。
为了解决上述难题,NewSQL 数据库应运而生。NewSQL 数据库不仅具有 NoSQL 数据库对海量数据的存储管理能力,同时还保留了传统数据库支持的 ACID 和 SQL 特性。
NewSQL 是一类新的关系型数据库, 是各种新的可扩展和高性能的数据库的简称。
TiDB数据库入门
TiDB数据库的存储原理(非常详细)
TiDB数据库的管理机制
TiDB数据库的应用场景
OceanBase数据库入门
原内容出处
推荐阅读
-
关系型数据库与非关系型数据库(Redis数据库)
-
NoSQL数据库(非关系型数据库)与NewSQL
-
Redis非关系型数据库学习
-
JavaWeb——Redis(非关系型数据库)
-
Mongodb在windows下的安装和启动 博客分类: Mongodb mongodbnosql数据库非关系型
-
NoSQL数据库探讨之一 - 为什么要用非关系数据库?(转) 博客分类: 非关系型数据库 NoSQL数据结构CassandraRedisMongoDB
-
非关系型数据库—Cassandra cassandra云计算
-
NoSQL数据库,何解要用非关系数据库? 博客分类: Unix类 NoSQL数据结构CassandraRedisMongoDB
-
mybatis整合ehcache以及spring整合redis非关系型数据库
-
为什么要用非关系型数据库 博客分类: mysql NoSQLSQLSQL ServerSNSHBase