这是我参与「第五届青训营 」伴学笔记创作活动的第 一 天
01经典案例
日常用户注册时按APP要求填写的信息就是一条有价值的数据,这数据往往是结构化的。这条结构化的用户注册数据被APP发送到后端服务器处理并发送入数据库,而数据库也往往也会和其他系统有联系处理。
数据的持久化:首先,对数据合法性进行校验。例如用户是否已经存在等等。通过数据校验后,用高效的数据结构组织数据,最后再以寿命&性能友好的方式写入硬件。通过以上步骤保障数据的可用性持久化
但其中也存在潜在问题:
- 数据库怎么保证数据不会丢失?
- 数据库怎么处理多人同时修改的问题?
- 除了数据库以外,有没有其他的储存系统?
- 数据库只能处理结构化数据吗?
- 有哪些操作数据库的方式?要用什么语言?
02存储&数据库简介
存储系统是提供了读写、控制类接口,能够安全有效的把数据持久化的软件。
他的特点是做为后端的底座,对性能极其敏感,而且软件架构容易受到硬件影响,而其代码既“简单”(存储信息不能搞很多分支)又“复杂”(io处理需要考虑异常)。
缓存很重要贯穿整个存储系统,拷贝很昂贵,应该尽量减少有了 RAID技术:
-
RAID O 多块磁盘简单组合.数据条带化存储,提高磁盘带宽.没有额外的容错设计
-
RAID 1 一块磁盘对应一块额外镜像盘 真实空间利用率仅50% 容错能力强
-
RAID 0+1 结合了RAIDO和RAID 1 真实空间利用率仅50% 容错能力强,写入带宽好
数据库主要分为关系数据库和非关系数据库。
关系数据库特点:
- 结构化数据友好
- 支持事务(ACID)
- -支持复杂的查询语言(SQL)
03主流产品剖析
单机存储
本地存储系统。
key——value存储:
key是你的身份证,value是你的内涵。例子:拳头产品:RocksDB
分布式存储
HDFS:堪称大数据时代的基石
单机关系型数据库
单机非关系型数据库
分布式数据库
解决容量问题——存储节点池化,动态扩缩容量。
解决性价比问题:
从单机存储到分布式存储,存储方式不断变化,但是始终是为了更方便使用,更高性价,更安全方向发展。