首页 > 代码库 > NoSql
NoSql
NoSql介绍
NoSql的全称是Not Only Sql,这个概念早期就有人提出,在09年的时候比较火。NoSql指的是非关系型数据库,而我们常用的数据库都是关系型的数据库。如:mysql、sqlserver、oracle数据库。这些数据库可以应付普通的常规业务,是没有问题的。但是,随着互联网的发展,传统的数据库在应付超大规模,和高并发的数据时就显得力不从心。而这个时候,nosql开始得到迅速的发展。
和关系型数据库的区别
那么nosql都有哪些特点呢?为什么它可以适应这些大数据量,高并发的访问呢?
nosql是以Key-value的形式进行存储的,而且不一定遵守传统数据库的一些基本的要求(根据数据库的不同,可能有的会遵循部分的标准),比如说sql语句的标准。在sql标准中,增删改查对应相应的insert、delete、update和select命令。而我们的NoSql命令中,这些规范是不适应的。
还有就是事务处理,NoSql数据库中,以redis数据库为例,虽然有的支持事务,但是很简单,满足不了需求。
最后就是表结构,我们的关系型数据库中,每个表有自己的主键啊,还有各个字段啊,都有自己的表结构。而我们的NoSql都是没有表结构的。这就导致我们的非关系型数据库比较容易分布式架构。
NoSql特点
1.处理超大量的数据
和mysql相比,NoSql的数据处理能力相对较大。nosql对数据的高并发读写能力较强。如:加入对mysql进行每秒上万次的写入,它就废掉了(主要是硬盘io无法承受),但是我们的redis(NoSql的)的话,上万次的读写是没有啥压力的。
2.运行成本低
由于可以搭建集群,NoSql可以搭建一个集群。而这些普通的pc机的价格是很低的。
3.性能没有瓶颈
当我们的mysql数据库中数据量达到某一个量级的时候,我们的存储和读取的效率就会降低,而nosql数据库就比较轻松的可以查找到相对的信息。
4.数据库的扩展性
mysql需要升级或者数据迁移的时候,是特别的麻烦的。但是对于NoSql来说,只需要增加一个节点就可以了。因为NoSql没有表结构。
Reids介绍
而我们的NoSql中很火的一个数据库就是Redis数据库。它是一个开源的,键值对结构的数据结构服务器。它的值可以包含字符串、哈希、链表、集合、和有序集合。
这些数据可以以不同的方式排序。redis的数据一般都是缓存在内存中,也可以通过一些配置将数据写入磁盘中。
目前全球最大的redis用户就是新浪微博,据说有几千台服务器搭了一个redis的集群(具体数据不知道)。
NoSql