后端学习 | 青训营笔记

63 阅读2分钟

这是我参与「第五届青训营 」伴学笔记活动十六天

存储

模拟案例

注册 注册数据(前端)->后端服务器->数据库->其他系统 数据的持久化 验证数据合法性(用户是否已经存在)->组织高效的数据结构(struct)->写入存储介质 潜在问题 数据如何不丢? 多人同时修改? 其他存储系统? 结构化数据?(流式数据如何处理?) 数据库操作方式,编程语言?

存储&数据库简介

  • 存储系统概览
    • 存储系统的特点
      • 提供可读写的接口,能够有效的、安全的把数据持久化的软件
      • 性能敏感
      • 易受硬件影响
      • 存储系统的代码既简单又复杂
    • 存储器层级结构
      • 存储器金字塔
      • 软件
        • buffer多用
        • copy少用
        • 统一的软件接入层
    • 单机存储栈
    • RAID技术
      • redundant array of inexpensive disks(小成本磁盘阵列)
      • 单块大disk价格>多个小磁盘
      • 单磁盘写入性能<多磁盘并发写入
      • 单磁盘容错能力有限,不安全
      • 极端
        • 无容错、条带化存储提高磁盘带宽
        • 高容错,存储效率降低
  • 数据库系统概览
    • 关系型数据库特点
      • 一种存储系统,但是在存储之外又发展出其他能力
      • 结构化友好
      • 支持事务
      • 支持复杂查询语言(SQL)
    • 非关系型数据库特点
      • 不要求严格结构化
      • 半结构化数据友好
      • 可能支持事务
      • 可能支持复杂的查询语言
    • 数据库vs经典存储
      • 事务
        • A:原子性,要么全做,要么全不做
        • C:一致性,事务执行前后数据状态是一致的
        • I:隔离性,可以隔离多个并发事务,避免影响
        • D:持久性,事务一旦提交成功,数据保证持久性
      • 复杂查询能力
    • 数据库使用方式

主流产品剖析

  • 单机存储产品(大项目使用这个作为用户基本信息、用户数据信息、视频流信息存储)
    • 单击文件系统
    • 单机key-value存储
  • 分布式存储产品
    • HDFS
    • Ceph
  • 单机数据库产品
    • 关系型数据库
      • PG
      • MYSQL
        • query引擎
        • Txn管理
        • lock管理
        • stroage引擎
        • replication
    • 非关系型数据库
      • ES
      • MongoDB
        • 面向文档存储
      • Redis
        • 数据结构丰富
          • hash
          • set
          • zset
          • list
    • Elasticsearch使用案例
  • 分布式数据库产品
    • 问题与挑战
    • 解决方案

新技术演进

  • SPDK
  • 人工智能
  • 新硬件加速