这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天。
📜📜📜今天学习的是存储。
一、🤔简单了解数据的全生命周期
1.数据的产生
比如新用户的注册
2.数据的流动
如图所示,数据产生后,会传到后端服务器,接着传到数据库,最后可能会从数据库传到其他系统。
3.数据的持久化
不能每一次使用都去注册,所以需要存储。 先校验数据合法性,再修改内存,最后将数据写入存储介质。
思考:这里会有什么问题呢?
- 数据库怎么保证数据不丢?
- 数据库怎么处理多人同时修改的问题?
- 为什么用数据库,除了数据库还能存到别的存储系统吗?
- 数据库只能处理结构化数据吗?
- 有哪些操作数据库的方式,要用什么编程语言?
二、🎉存储/数据库简介
要让用户使用 要写到存储介质上 尽可能设计性能高效的内存数据结构 可能会关注网络编程
- 可以这样定义存储系统:一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统
- 系统特点:性能敏感,代码既简单又复杂,任意受硬件影响。
- 存储器层级结构:塔尖(容量非常小,支撑超高性能的访问)…………底层(容量非常大,读写速度非常慢,访问方式也可能不友好)
1.数据怎么从应用到存储介质?
cache或者buffer的作用是在跨软件层的地方以软件层或硬件层友好的方式对其他层交互。
缓存很重要
拷贝很昂贵
硬件设备种类多样,需要有抽象统一的接入层
2.什么是RAID技术
单机存储系统通过RAID做到高性能高性价比高可靠性。 RAID(Redundant Array of Inexpensive Disks)
出现的背景:
- 单块大容量磁盘的价格>多块小容量磁盘
- 单块磁盘的写入性能<多块磁盘的并发写入性能
- 单块磁盘的容错能力有限,不够安全
⬇
3,数据库
数据库和存储系统不一样吗?
- 关系型数据库是存储系统,但是在存储之外,又发展出其他能力
- 非关系型数据库也是存储系统,但是一般不要求严格的结构化
三、主流存储、框架
1单机存储
- 单机存储是单个计算机节点上的存储软件系统,一般不涉及网络交互
包括本地文件系统; key-value存储﹔
例如:Linux经典哲学:一切皆文件;世间一切皆key-value
2分布式存储
在上面的基础,设计网络交互