存储系统、数据库和对象存储 | 青训营

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 存储系统、数据库和对象存储 | 青训营

存储系统

一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统

特点有

  • 作为后端软件的底座.性能敏感
  • 存储系统软件架构,容易受硬件影响
  • 存储系统代码,既“简单"又“复杂”

数据库

关系型数据库和非关系型数据库

关系=集合=任意元素组成的若干有序偶对反应了事物间的关系

相关文章

关系代数=对关系作运算的抽象查询语言

  • 交、并、笛卡尔积…… SQL=一种DSL=方便人类阅读的关系代数表达形式

关系型

关系型数据库是存储系统,但是在存储之外,又发展出其他能力

  • 结构化数据友好struct
  • 支持事务acid
  • 支持复杂语言SQL关系型数据库是指采用了关系模型来组织数据的数据库。简单来说,关系模式就是二维表格模型。

非关系型

NoSQL非关系型数据库,主要指那些非关系型的、分布式的,且一般不保证ACID的数据存储系统。

NoSQL提出了另一种理念,以键值来存储,且结构不稳定,每一个元组都可以有不一样的字段,这种就不会局限于固定的结构,可以减少一些时间和空间的开销。使用这种方式,为了获取用户的不同信息,不需要像关系型数据库中,需要进行多表查询。仅仅需要根据key来取出对应的value值即可。

主流存储分类

单机存储 单机数据库 分布式数据库 分布式存储
文件系统 关系型数据 关系型数据 分布式文件系
Key-Value存 非关系型数据 非关系型数据库 对象存储

1.单机存储

单个计算机节点上的存储软件系统,一般不涉及网络交互

特点

  • 本地文件系统
  • key-value存储

2.分布式存储—概览

在单机存储基础上实现了分布式协议,涉及大量网络交互

HDFS、Ceph

特点

  • 分布式文件系统
  • 分布式对象存储

3.单机数据库

单个计算机节点上的数据库系统

事务在单机内执行,也可能通过网络交互实现分布式事务

关系型数据库

商业产品Oracle,开源产品MySQL & PostgreSQL

非关系型数据库

MongoDB、Redis、Elasticsearch

关系型数据库一般直接使用SQL交互,而非关系型数据库交互方式各不相同

非关系型数据库的数据结构千奇百怪,没有关系约束后,schema相对灵活

不管是否关系型数据库,大家都在尝试支持SQL(子集)和“事务”

4.分布式数据库

  • 容量:单点容量有限,受硬件限制
  • 弹性:扩容等问题
  • 性能
  • 性价比

在存储和数据库领域,硬件反推软件的变革十分常见

对象存储OSS(Object Storage Service)

特点

  • 容量无限大:可以到 EB 级,多少数据都能存的下
  • 持久可靠:11个 9 甚至以上的可靠性,数据丢失的概率比中五百万的概率还要低 2-3 个量级
  • 低成本:1 部高清电影存 1 年,差不多也就几块钱人民币
  • 使用方便:支持 REST 接口,主要操作为 PUT/GET/DELETE等,使用非常简单。

应用场景:日志、文本、音频、视频、图片、安装包、备份、前端js文件等

对象存储使用

对象(Object)是OSS存储数据的基本单元,也被称为OSS的文件。

和传统的文件系统不同,Object没有文件目录层级结构的关系。

  1. 创建Bucket
  2. 开发业务逻辑
  3. 测试

restful接口

对象存储对外提供的一般都是Restful风格的接口。

和gin类似

MultiUpload接口

解决大文件的问题

Listprefix接口

查看bucket里面的对象

关于运行代码

刚再阿里云上申请完,但是控制台里显示"数据还在准备中"

官网里面的文档非常详细了,不需要做任何补充

bucket创建就可以使用

OSS管理控制台 (aliyun.com)在这里可以看到endpoint当然是选择外网访问的第一个啦

在头像触摸可以出来accessKey管理,新建一个就可以使用。

分别是acessKey和acessSecretKey,在之后登录会用到

还有STS访客临时登录等等,文档里面很详细


在goland里面用

发现完全没必要自己写了啊,找到了阿里云的 OSS SDK for Go

  • 执行命令go get github.com/aliyun/aliyun-oss-go-sdk/oss获取远程代码包。
  • 在您的代码中使用import "github.com/aliyun/aliyun-oss-go-sdk/oss"引入OSS Go SDK的包。

这样就应该可以在大项目里面用了

go

复制代码

package main
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
  client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
  if err != nil {
    // HandleError(err)  
  }
  lsRes, err := client.ListBuckets()
  if err != nil {
    // HandleError(err)  
  }
  for _, bucket := range lsRes.Buckets {
    fmt.Println("Buckets:", bucket.Name)
  }
  bucket, err := client.Bucket("my-bucket")
  if err != nil {
    // HandleError(err)  
  }
  lsRest, err := bucket.ListObjects()
  if err != nil {
    // HandleError(err)  
  }
  for _, object := range lsRest.Objects {
    fmt.Println("Objects:", object.Key)
  }
}


相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
17天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
63 3
|
16天前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
16 1
|
30天前
|
SQL 存储 关系型数据库
数据储存数据库管理系统(DBMS)
【10月更文挑战第11天】
85 3
|
1月前
|
存储 关系型数据库 MySQL
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
27 2
|
1月前
|
安全 NoSQL 关系型数据库
阿里云数据库:构建高性能与安全的数据管理系统
在企业数字化转型过程中,数据库是支撑企业业务运转的核心。随着数据量的急剧增长和数据处理需求的不断增加,企业需要一个既能提供高性能又能保障数据安全的数据库解决方案。阿里云数据库产品为企业提供了一站式的数据管理服务,涵盖关系型、非关系型、内存数据库等多种类型,帮助企业构建高效的数据基础设施。
54 2
|
1月前
|
存储 NoSQL 关系型数据库
数据库管理系统
【10月更文挑战第8天】
58 1
|
1月前
|
数据可视化 API PHP
低代码开发工具-学生管理系统-老师管理增删改查实现
低代码开发工具-学生管理系统-老师管理增删改查实现
31 5
|
1月前
|
SQL JSON 关系型数据库
MySQL是一个广泛使用的开源关系型数据库管理系统,它有许多不同的版本
【10月更文挑战第3天】MySQL是一个广泛使用的开源关系型数据库管理系统,它有许多不同的版本
133 5
|
13天前
|
存储 弹性计算 数据管理
阿里云对象存储OSS收费标准,存储、流量和请求等多个计费项
阿里云对象存储OSS提供按量付费与包年包月两种计费方式,涵盖存储、流量、请求等费用。标准存储按量付费0.09元/GB/月,包年包月40GB起售,价格9元/年。公网流量出方向收费,内网及上传免费。具体费用视使用情况而定,详情见官网。
119 0
|
29天前
|
运维 NoSQL BI
简道云搭载阿里云MongoDB数据库,帮助数以万计企业重构业务系统
通过与MongoDB和阿里云团队的合作,让简道云少走了弯路,保障了线上服务的长期稳定运行,提高了吞吐效率,并相应降低了线上运行成本

热门文章

最新文章