Nosql概述
为什么要用nosql
已经是2021年,大数据时代,一般的数据库无法处理了
第一个时代
原始的时代,单机Mysql,一般基本的网站访问量不会太大,还是静态的html,这个时候网络的瓶颈在于
1)数据量太大,一个机器放不下去
2)数据的索引(B+树),一个机器内存也放不下去
3)访问量,数据库访问量比较大, 读写不分离,服务器承受不了
只要你出现以上三种情况之一,你就必须要晋级。
第二个时代
Memcached缓存+mysql+垂直拆分+读写分离
网站80%的情况都是读,查询数据库的方式十分麻烦。所以我们希望减轻数据库的压力,使用缓存来b奥正访问效率。
发展过程:优化数据结构与索引 ——> 文件缓存(IO)——> memcached(缓存,当时最火热的缓存技术)
第三个时代
分库分表 水平拆分(mysql集群)
技术和业务的发展的过程中,对人的要求越来越高
本质:数据库的操作,读或者写
早些年是MyISam:表锁,十分影响效率,高并发下,严重的锁问题
INNODB:行锁,
慢慢的就开始就开始使用分库分表来解决写的压力
最近的时代
技术爆炸:十年之间,世界已经发生了翻天覆地的变化
Mysql关系型数据库不够用了,数据量变化很大
Mysql有的使用,比较大的文件,博客,图片,数据库表很大,效率很低。如果有一种数据库来专门处理 这种数据,Mysql的压力就特别小,大数据IO的压力下,表几乎无法更改,
为什么要用NoSQL
用户的个人信息,社交网络,地理位置,用户自己产生的数据,用户的日志爆发式增长,就没办法使用关系性数据库,我们就需要NoSQL数据库来处理以上的情况。
什么NoSQL
not only SQL 不仅仅是sql
泛指菲关系型数据库,随着web2.0互联网的诞生,传统型关系数据库很难对付web2.0时代,尤其是超大规模的高并发的社区
NoSQL在当今大数据环境下发展的十分迅速。
redis 是发展最快,当下必须掌握的技术
NoSQL特点
1)可拓展
2)大数据量高性能(redis 1s 可以写八万次 读取11万次,是一个细粒度的缓存)
3)数据类型多样性(不需要事先设计数据库)
4)传统RDBMS关系数据库管理系统和Nosql
了解3V
海量多样实时 大数据3V
高并发高可拓高性能 大数据3高
阿里巴巴演进分析
商品的基本信息
名称,价格,商家信息
关系型数据库就可以解决了,Mysql/Oracle
商品的描述和评论
文档数据库 mongoDB
图片
分布式文件系统 FastDFS
Hadoop hdfs
google gfs
淘宝 tfs
阿里云 oss
关键字搜索
es
slor
淘宝 isearch
商品的热门信息
内存数据库
redis
tair
memache
商品的交易、支付接口
三方应用
NoSQl的四大分类
kv键值对 redis
文档数据类型 mongodb
列存储数据库 HBase 文件存储系统
图关系数据库 社交拓扑图 存的不是图形,是关系 Neo4j,infoGrid