Redis 笔记
本人观看B站狂神所做笔记,链接见文末
为什么要用NoSQL
网站瓶颈:
- 数据量太大
- 数据的索引(B+ Tree),一个机器也放不下
- 访问量(读写混合),一个服务器承受不了
Memcached(缓存)+MySQL+垂直拆分(读写分离)
网站80%都是在读,每次查询十分麻烦,希望减轻数据库的压力,可以使用缓存来保证效率。
发展过程:优化数据结构和索引->文件缓存(IO)->Memcached
2010-2020十年之间发生了翻天覆地的变化
MySQL等关系型数据库不够用了!数量很多,变化很快!
MySQL存一些比较大的文件,博客,图片,数据库表很大,效率低下!需要专门的数据库来处理这种数据
用户个人信息,社交网络,地理位置。用户自己产生的数据,用户日志等爆发时增长!
NoSQL可以很好处理以上的情况!
什么是NoSQL
Not only SQL(不仅仅是SQL)
泛指非关系型数据库
NoSQL特点
解耦!
- 方便扩展,数据之间没有关系
- 大数据量高兴呢(Redis可以一秒写8万次,读11万次,NoSQL的缓存记录级是一种细粒度的缓存,性能高)
- 数据类是多样型的(不需要实现设计数据库,随取随用,)
- 传统RDBMS和NoSQL
传统RDBMS
- 结构化组织
- SQL
- 数据和关系都存在单独的表中 row col
- 操作增删改查,数据定义语言
- 严格的一致性
- 基础的事务
NoSQL
- 不仅仅是数据
- 没有固定的查询语言
- 键值对存储,列存储,文档存储,图形数据库(社交表)
- 最终一致性
- CAP理论和BSE(异地多活,只要学不死,就往死里学,加油!!!!!!)
- 高性能,高可用,高可扩展!
l了解3V+3高
大数据时代的3V:主要是描述问题的
- 海量Velume
- 多样Variety
- 实时Velocity
大数据时代的3高:主要是对程序的需求
- 高并发
- 高可扩(随时水平拆分,机器不够了可以扩展机器!)
- 高性能 (保证用户体验和性能)
真正在公司中的实践:NoSQL+RDBMS,一起使用才是最强的!
阿里巴巴演进分析
技术急不得,越是慢慢学,才能越扎实!
敏捷开发,极限编程
没有什么是加一层解决不了的
1,商品的基本信息
名称,价格,商家信息;
关系型数据库就可以解决了,MySQL/Oracle(淘宝早年就去IOE了)
2, 商品的描述、评论(文字较多)
文档型数据库中,MongoDB
3、 图片
分布式文件系统 FastDFS
- 淘宝自己的TFS
- Google的GFS
- Hadoop的HDFS
- 阿里云的 oss
4、商品的关键字(搜索)
- 搜索关键字 solr elasticsearch
- 淘宝 ISearch 多隆开发
所有牛逼的人都有一段苦逼的岁月!但是你只要像SB一样的去坚持,终将牛逼!
5、商品热门的波动信息
- 内存数据库
- redis tair memache
6、商品的交易,外部的支付接口
- 三方应用(银行等)
大型互联网应用问题:
- 数据类型太多了!
- 数据源繁多,经常重构
- 数据要改造,大面积的改造
解决问题:
同一数据服务层
以上都是NoSQL的入门概述,不仅可以提高知识,还可以了解大厂工作内容!
NoSQL四大分类
KV键值对:
- 新浪 Redis
- 美团:Redis+Tair
- 阿里、百度:Redis+memecache
文档性数据库(bosn格式和json一样):
- MongoDB(一般必须掌握)
- MongoDB是一个基于分布式文件存储的数据库,C++编写,主要用来处理大量的文档
- MongoDB是一个介于管茜茜数据库和菲关系型数据库中间的产品!MongoDB是非关系型数据库中功能最丰富,最像关系型数据库的!
- ConthDB(外国的)
列存储数据库
- HBase
- 分部式文件系统
图形关系数据库
- 存拓扑关系的,不是存图片,放的是关系,比如:朋友圈社交网络,广告推荐!
- Neo4j, InfoGrid
敬畏之心可以使人进步!
待续。。。。
本博客为该视频的笔记
狂神说Java】Redis最新超详细版教程通俗易懂