首先为什么会有nosql?
关系型数据库这么牛逼,这么普及,为什么还会会有nosql?我只有关系型数据库不行吗?
反正都是存储数据,讲究这么多干嘛???
因为关系型数据库是存在瓶颈的
在数据量太大,用户并发量太大,性能会大打折扣
原因是磁盘IO是有瓶颈的,并发量太大也会导致磁盘IO阻塞
那有没有一种技术,可以不再去跟磁盘打交道,于是乎就出现了nosql
内存存储技术
基于内存,但是也支持持久化,所有不能说绝对没有磁盘IO
for instance
我们一般每人会有好几个QQ账号,有时候打游戏专门申请小号
也有小时候的QQ账号好几年没登,成为僵尸账号(冷数据),存在了关系型数据库中,说不定哪天想登了还能登上
数据分为热数据和冷数据
热数据就好比你的大号,经常登陆,一般存储在nosql中,如redis缓存,直接从里面取,快的一匹
然后我们再认真的介绍一哈nosql
为了解决高并发、高可用、高可扩展,大数据存储等一系列问题而产生的数据库解决方案,就是NoSql。
NoSql,叫非关系型数据库,它的全名Not only sql。它不能替代关系型数据库,只能作为关系型数据库的一个良好补充。
NoSql的分类
n 键值(Key-Value)存储数据库
相关产品: Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB
典型应用: 内容缓存,主要用于处理大量数据的高访问负载。
数据模型: 一系列键值对
优势: 快速查询
劣势: 存储的数据缺少结构化
n 列存储数据库
相关产品:Cassandra, HBase, Riak
典型应用:分布式的文件系统
数据模型:以列簇式存储,将同一列数据存在一起
优势:查找速度快,可扩展性强,更容易进行分布式扩展
劣势:功能相对局限
n 文档型数据库
相关产品:CouchDB、MongoDB
典型应用:Web应用(与Key-Value类似,Value是结构化的)
数据模型: 一系列键值对
优势:数据结构要求不严格
劣势: 查询性能不高,而且缺乏统一的查询语法
n 图形(Graph)数据库
相关数据库:Neo4J、InfoGrid、Infinite Graph
典型应用:社交网络
数据模型:图结构
优势:利用图结构相关算法。
劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案。
虽然有了nosql,但是是不能取代关系型数据库的地位
redis
主流 k-v 内存存储
redis是键值对存储的 类似我们熟悉的key value(HashMap)
redis的五大存储结构
1. 字符类型 String
2. 散列类型 list
3. 列表类型 Hash
4. 集合类型 Set
5. 有序集合 SortedSet
应用场景:
1. 数据缓存(商品数据、新闻、热点数据) 比如存放QQ大号
2. 单点登录
3. 秒杀、抢购
4. 网站访问排名… 比如QQ音乐排行榜top10 淘宝双十一销量top10
说点什么
您将是第一位评论人!