前言
本文章基于黑马程序员Redis教学视频进行总结,仅作为学习所用,欢迎大家在评论区多多讨论视频连接:B站黑马程序员Redis视频(点击跳转)
一、出现背景
1.问题现象
- 海量用户
- 高并发
罪魁祸首——关系型数据库
- 性能瓶颈:数据库的数据是保存在磁盘上,读写磁盘上的IO性能是比较低下的[CPU与高速缓存Cache做数据交换,Cache再和内存做数据交换,内存再和磁盘(磁盘包括硬盘和软盘,目前软盘已淡出人们的视野,不再使用了)做数据交换,频繁地进行层与层之间数据交换——>因此性能低]
- 扩展瓶颈:数据库存储形式不仅仅只是简单地存储数据,更多地还要描述数据之间的关系,因此数据关系有时会非常复杂[表与表之间的关联],扩展性差,有种牵一发而动全身的感觉,不便于大规模集群
2.解决思路
- 降低磁盘IO次数,越低越好 —— 内存存储[直接不放在磁盘]
- 去除数据间关系,越简单越好 —— 不存储关系,仅存储数据[数据"啪"的一摆,和谁都没有关系,可以大大降低扩展的不便性]
基于上述两种思路,产生了Nosql
二、Nosql是什么?
NoSQL:即 Not-Only SQL( 泛指非关系型的数据库),Not-Only SQL翻译:不能仅仅只是使用sql语句
作为关系型数据库的补充
作用:应对基于海量用户和海量数据前提下的数据处理问题
特征:
- 可扩容,可伸缩
- 大数据量下高性能
- 灵活的数据模型
- 高可用(集群时会涉及)
常见 Nosql 数据库:
- Redis
- memcache
- HBase
- MongoDB
三、应用场景
MongoDB:高速存储和处理文档
上述四类信息都有可能成为热点信息