我主要学习到了存储系统、数据库系统的特点,了解多个主流产品。之后需要重点学习的是MySQL和Redis。
存储系统
存储系统是一种用于持久化数据的计算机系统,它用于存储和管理各种类型的数据,以便后续检索、查询和处理。存储系统的目标是提供可靠、高效、可扩展的数据存储和访问解决方案,以满足不同应用场景的需求。
组成部分:
-
存储介质:存储系统使用不同类型的物理介质来存储数据,例如硬盘驱动器(HDD)、固态硬盘(SSD)、内存等。不同的存储介质具有不同的性能、容量和成本特点。
-
数据结构:存储系统通常使用特定的数据结构来组织和管理数据,以便高效地存储和检索。常见的数据结构包括文件系统、数据库、键值存储、文档数据库、列存储、图数据库等。
-
持久性:存储系统的核心特性之一是数据的持久性,即数据在断电或系统崩溃等情况下仍然能够保持不受损失。这需要采取数据写入和刷新机制,确保数据被正确地写入到物理介质中。
-
数据管理:存储系统提供数据管理功能,包括数据的插入、更新、删除和查询。这需要实现事务管理、索引、查询优化等技术。
-
高可用性和容错性:存储系统通常需要具备高可用性和容错性,以确保数据的连续可访问性。这可以通过备份、复制、分布式架构等方式实现。
-
性能优化:存储系统需要优化数据访问的性能,包括读写速度、并发性能、响应时间等。性能优化可能涉及到缓存、数据分片、负载均衡等技术。
-
安全性:存储系统需要保障数据的安全性,包括数据的机密性、完整性和可用性。这可以通过加密、访问控制、身份验证等方式实现。
不同类型的应用场景可能需要不同类型的存储系统。例如,关系型数据库用于存储结构化数据,NoSQL数据库用于存储半结构化或非结构化数据,分布式文件系统用于大规模数据的存储和管理。存储系统在计算机系统中扮演着重要角色,支持数据持久化和管理,满足各种应用的需求。
RAID技术
RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)是一种将多个硬盘组合起来以提升性能、可靠性和存储容量的技术。RAID技术通过将多个磁盘组织成一个逻辑单元,可以在硬件和软件层面提供不同级别的数据冗余、性能优化和容错能力。以下是一些常见的RAID级别:
-
RAID 0(条带化): RAID 0将多个硬盘划分为若干条带(Stripe),数据被均匀地分布在各个硬盘上。RAID 0可以显著提升数据读写性能,但没有冗余机制,任何一个硬盘故障都会导致数据丢失。
-
RAID 1(镜像): RAID 1通过将数据同时写入两个硬盘,实现数据的冗余存储。如果其中一个硬盘故障,另一个硬盘仍然包含完整的数据。RAID 1提供数据冗余和高可用性,但磁盘容量利用率较低。
-
RAID 5: RAID 5将数据和校验信息分布存储在多个硬盘上。校验信息用于恢复数据。RAID 5在保证一定冗余性的同时,能够更有效地利用磁盘容量。
-
RAID 6: RAID 6类似于RAID 5,但使用两个独立的校验信息,提供更高的冗余性。RAID 6能够容忍两个硬盘的故障,提供更高的容错能力。
-
RAID 10(1+0): RAID 10是RAID 1和RAID 0的结合,将多个RAID 1的镜像组合成一个RAID 0的条带化结构。RAID 10提供数据冗余和高性能,但需要至少四个硬盘。
RAID技术在数据存储领域具有广泛应用,它可以提供数据的冗余性、高可用性和性能优化。不同的RAID级别适用于不同的应用场景,选择合适的RAID级别需要根据性能、容错性和成本等因素进行权衡。需要注意的是,RAID技术提供的是硬件层面的冗余和容错,而不是备份。备份是保护数据免受意外删除、软件故障等问题的重要手段。
数据库系统
数据库系统是一种用于存储、管理和组织数据的计算机系统。它是一个软件系统,可以用于创建、访问、更新和维护存储在数据库中的数据。数据库系统提供了一种结构化的方式来存储和管理数据,以便用户可以有效地进行数据操作和查询。
存储系统就是数据库吗?
存储系统与数据库相关但不对等。
存储系统(Storage System)是一个更广泛的术语,指的是用于存储和管理数据的整个体系结构,包括硬件和软件组件。存储系统可以包括磁盘阵列、固态硬盘、磁带库、网络存储等不同类型的硬件设备,以及用于数据管理、备份、恢复、快照、存储虚拟化等功能的软件。
数据库(Database)是一种特定类型的存储系统,用于结构化数据的存储和管理。数据库是一个集中化的数据存储库,使用特定的数据模型(如关系型、文档型、键值对型等)来组织和表示数据。数据库系统包括数据库管理系统(DBMS)和相关的工具、语言和服务,用于创建、查询、更新和管理数据库中的数据。
总的来说,存储系统是一个广义的概念,指的是用于存储和管理数据的整个体系结构,包括硬件和软件。数据库是存储系统的一个特定类型,是用于结构化数据的存储和管理的系统,包括DBMS和相关工具。存储系统可以包括多种类型的存储设备,而数据库通常涉及特定的数据模型和数据管理机制。
关系型数据库
关系型数据库(Relational Database)是一种使用关系模型来组织和管理数据的数据库类型。在关系型数据库中,数据以表格(称为关系)的形式组织,每个表格包含了一组有关的数据项,并且通过定义表之间的关系来建立数据之间的连接。
常见的关系型数据库包括: MySQL,PostgreSQL,Oracle等等
关系型数据库适用于许多应用场景,特别是需要数据结构化、查询复杂性较高以及事务处理等方面的应用。然而,在处理大规模数据和需要更高性能的场景下,一些非关系型数据库(NoSQL数据库)也得到了广泛的应用。
非关系型数据库
非关系型数据库(NoSQL数据库)是一种与传统关系型数据库不同的数据库类型,它们的设计目标主要是解决关系型数据库在处理大规模、分布式、半结构化和高性能数据时的一些限制。非关系型数据库通常更适用于一些需要高度可扩展性、灵活性和性能的场景。
常见的非关系型数据库类型包括:
- 文档型数据库(例如 MongoDB):以文档的形式存储数据,适合存储半结构化数据。
- 键值对数据库(例如 Redis、Amazon DynamoDB):使用键值对存储数据,适合高速读写和缓存等。
非关系型数据库在大数据、分布式系统、实时数据分析和高性能需求等场景下具有优势。但是其也有缺乏标准,数据的不一致,比较复杂等明显缺点。
数据库 vs 经典存储
数据库相对于经典存储,能提供了丰富的数据模型和查询语言,允许用户以结构化方式存储数据,并且可以执行复杂的查询操作。这使得数据可以更好地组织、管理和分析。且数据库代码方便简单,便于操作。数据库还有些其他优势这里就不再赘述。
主流产品剖析
在这些产品中我主要研究MySQL和Redis,作为关系型数据库和非关系型的对比学习。
总结
我主要学习到了存储系统、数据库系统的特点,了解多个主流产品。之后需要重点学习的是MySQL和Redis。
今天继续学一下go框架。