存储 | 青训营笔记

77 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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操作。 最终的抖音项目中也用了这个方法,还是很方便的,比存储在本地服务器管理起来要更加方便。但是隐私性、数据的安全性也是需要考虑的。