知识点
- nosql
- 阿里巴巴架构演进
- Nosql数据模型
- Nosql四大分类
- CAP
- BASE
- Redis入门
- Redis安装(Windows & Linux)
- 五大基本数据类型
- String
- List
- Set
- Hash
- Zset
- 三种特殊数据类型
- geo
- hyperlogog
- bitmap
- Redis配置详解
- Redis持久哈
- RDB
- AOF
- Redis事务操作
- Redis实现订阅发布
- Redis主从复制
- Redis哨兵模式
- 缓存穿透以及解决方案
- 缓存击穿以及解决方案
- 缓存雪崩以及解决方案
- 基础API之 Jedis详解
- SpringBoot集成Redis
- Redis的实践分析
一、NoSql概述
为什么要用Nosql
单机时代的Mysql
90年代,网站的访问量不大,单个数据库够用。但是随着用户的增多,出现了以下问题
- 数据量增加到一定程度,单机数据库就放不下了
- 数据的索引(B+ Tree),一个机器内存也存放不下
- 访问量变大后(读写混合),一台服务器承受不住。
Memcached(缓存) + Mysql + 垂直拆分(读写分离)
网站中80%情况都在读,因此使用缓存保证读取的效率。优化的过程:
- 优化数据库的数据结构和索引(难度大)
- 文件缓存,通过IO流获取每次都访问数据库效率高,但是流量爆炸式增长的时候IO流也受不了
- Memcache,当时的热门技术,在数据库和数据库访问层之间加上一层缓存,第一次访问查询数据库,将结果保存到缓存中 。后续查询缓存中有就直接拿走,效率显著提升。
分库分表 + 水平拆分 + MySql集群
对于现在的很多公司来说用的很少了。
最近年代
如今的数据喷井式增长,各种各样的数据出现(定位数据,图片,等等)。在这种情况下关系型数据库RDBMS无法满足大数据的需求,但是NoSql可以很容易解决这些问题。
现在用户访问先通过企业 的防火墙,再通过负载均衡处理,访问到服务器以后,服务器根据需求访问各种数据库,其中包括关系型数据库,图片数据库,视频流数据库等等,
什么是Nosql
Nosql = Not Only Sql
Not Only Structured Query Language
关系型数据库: 列 + 行 同一个表下的数据结构是一样的
非关系型数据库: 数据存储没有固定的格式, 并且可以进行横向扩展
NoSql特点
- 方便扩展 (数据之间没有关系,很好扩展)
- 大数据量,高性能(Redis一秒可以写8w次, 读11w次。 NoSql的缓存记录级是一种细粒度的缓存,性能比较高)
- 数据类型是多样的(不需要事先设计数据库,随取随用)
- 传统的 RDBMS 和 NoSQL
传统的 RDBMS(关系型数据库) - 结构化组织 - SQL - 数据和关系都存在单独的表中 row col - 操作,数据定义语言 - 严格的一致性 - 基础的事务 - ...
Nosql - 不仅仅是数据 - 没有固定的查询语言 - 键值对存储,列存储,文档存储,图形数据库(社交关系) - 最终一致性 - CAP定理和BASE - 高性能,高可用,高扩展 - ...
大数据时代的 3V 和 3高
- 3V:海量Velume 多样 Variety 实时 Velocity
- 3高:高并发 高可扩 高性能
NoSql四大分类
KV键值对:
- 新浪: Redis
- 美团:Redis + Tair
- 阿里、百度:Redis + memecache
文档型数据库(bson格式)
- MongoDB(一般必须要掌握的)
- MongoDB是一个基于分布式文件存储的数据库,C++编写,主要用来处理大量文档
- MongoDB是一个介于关系型数据库和非关系型数据库之间的产品。MongoDB是非关系型数据库中功能最丰富的,NoSQL中最像关系型数据库的
- ConthDB
列存储数据库
- HBase(大数据必学)
- 分布式文件系统
图关系数据库(用于广告推荐,社交网络)
- Neo4j, InfoGrid
四大Nosql数据库的对比
版权声明:本文为weixin_43664712原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。