最近一直在看redis相关方面的书籍,突然有种感受,看的东西多了,反而觉得自己知道的东西是那么的少,未知的东西是那么的多。记得老师总是在说一句话,学习是一件终身的事情,现在对于这句话真是深有感受,真是学无止境啊~
在学习redis之前,我们必须对于Nosql有个了解,因为像我们经常说的redis,mongdb,memcached在本质上都是一种非关系型数据库,所以我们得先来了解一下关于Nosql的知识。我们先来看一下数据库系统的分类。
从中我们看到了数据库分为三大类:非关系型数据库,关系型数据库,数据库缓存系统。
其中关系型的数据库主要是指Nosql数据库,分为键值存储,列存数据库,图存数据库以及文档数据库。关系数据库主要包含的是传统数据库以及NewSql数据库。传统数据库就是我们经常使用的SQLServer,Oracle,Mysql等等。
1. 关系型数据与非关系型数据库的区别
关系型数据库
既然上面提到了关系型数据库与非关系型数据库,那么这两者的区别和联系又是什么呢?
关系型数据库比如我们经常使用的Oracle、DB2、Microsoft SQL Server、MicrosoftAccess、MySQL等都是关系型数据库,那么关系型数据库有哪些特点呢?我们一起来温习一下以前的知识吧。
关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据,关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。
关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。
常用的关系操作就是数据查询:选择 投影连接 并 交 差 除;数据操作:增加 删除 修改 查询。
完整性约束:实体完整性 参照完整性用户定义完整性。
关于具体的细节不再赘述,网上有很详细的资料:http://blog.csdn.net/robinjwong/article/details/18502195
NoSql--非关系数据库
Nosql泛指非关系型数据库,随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。
NoSQL(NoSQL =Not Only SQL ),意即“不仅仅是SQL”,主要包含四大类,键值存储数据库,列存储数据库,文档型数据库,图形数据库。
具体的知识详见下面的链接:
(一)http://blog.csdn.net/wang379275614/article/details/47135133
(二)http://blog.csdn.net/wang379275614/article/details/47135345
(三)http://blog.csdn.net/wang379275614/article/details/47135455
(四)http://blog.csdn.net/wang379275614/article/details/47135535
(五)http://blog.csdn.net/wang379275614/article/details/47135553
NoSql是以键值key-value形式进行存储的,和传统的关系型数据库不一样,不一定遵循传统数据库的某些要求,比如说sql标准,acid属性,表结构等等,非关系型数据库主要有这些特点:非关系型,分布式的,开源的,水平可扩展的。
注意:在NoSql中,sql语句的增删改查是不好使的。
特点是:
(1) 处理超大量数据,
(2) 运行在便宜的pc服务器集群上
(3) 击碎了性能瓶颈
使用场景
(1) 对数据高并发读写
(2) 对海量数据的高效率存储和访问
(3) 对数据的高可扩展性和高可用性
介绍了一些知识后,我们下面来进行Nosql数据库相关的学习,下篇我们以其中的一种redis来作为介绍~