这是我参与「第五届青训营 」伴学笔记创作活动的第 14 天
一、 目录
- RAID技术简介
- 非关系型数据库
- 分布式数据库
- 对象存储
二、 详细知识点
2.1 RAID技术
单机系统如何做到高性能/高性价比/高可靠性?-> RAID技术
RAID包含3中形式,性能最好的RAID 0+1,其结合了RAID 0和RAID 1的技术,容错力强,写入带宽好。
2.2 非关系型数据库
非关系型数据库对比关系型数据库,数据结构是非结构化的、数据之间是无关联的,所有数据以key-value的形式存储、查询方式是非SQL的,不同类型的非关系型数据库查询数据的方式不一样,有的是以函数调用,有的是以请求的方式查询、事务特性只满足基本的约束,是BASE的对应于关系型数据库的ACID,等等。
现在市场上的非关系型数据库是Elasticsearch,MongoDB,Redis三足鼎立。
-
Elasticsearch面向文档存储,可序列化成json形式,支持嵌套。
-
MongoDB:面向文档存储,文档可形式化json/bson,4.0后开始支持事务。
-
redis:最广泛最普及,使用c语言实现,单线程+I/O复用,性能很好,数据结构丰富。
2.3 分布式数据库
单机数据库向分布式数据库发展的原因:
-
容量:单机容量有限,受硬件限制->节点存储池,动态扩缩容。
-
弹性:实现cpu和内存根据需要进行弹性的扩大和缩小。
-
性价比:相对单机系统更高,可以有效地组织廉价的服务器。
2.4 对象存储TSS
- 抖音短视频的图片存储服务:把短视频生产/消费的链路做得更加细粒度化,不需要存储在本地服务器中。
- 分布式存储 vs 对象存储:均具备海量、易用和便宜的特征,但是对象存储更加海量,对象数量无限制,支持>EB的海量存储。
- 对象存储的适用性与不适用性:对象存储适用于视频、文本、图像、安装包等静态存储的对象,而不适用于关系型数据等结构化、频繁更改的数据。
- 使用:云厂商会提供对象存储,申请bucket,使用restful的api接口。拿视频存储举例,先申请对象存储资源,然后后端掉用指定的API实现CURD操作。 最终的抖音项目中也用了这个方法,还是很方便的,比存储在本地服务器管理起来要更加方便。但是隐私性、数据的安全性也是需要考虑的。