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

本文涉及的产品
对象存储 OSS,20GB 3个月
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 存储系统、数据库和对象存储 | 青训营

存储系统

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

特点有

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

数据库

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

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

相关文章

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

  • 交、并、笛卡尔积…… 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,搭建一个在线教育视频课程分享网站。
相关文章
|
2月前
|
Cloud Native 数据管理 数据挖掘
核心系统转型问题之阿里云数据库用户需求的通用性和差异性如何平衡
核心系统转型问题之阿里云数据库用户需求的通用性和差异性如何平衡
|
9天前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
本文介绍了一个基于Spring Boot和Vue.js实现的在线考试系统。随着在线教育的发展,在线考试系统的重要性日益凸显。该系统不仅能提高教学效率,减轻教师负担,还为学生提供了灵活便捷的考试方式。技术栈包括Spring Boot、Vue.js、Element-UI等,支持多种角色登录,具备考试管理、题库管理、成绩查询等功能。系统采用前后端分离架构,具备高性能和扩展性,未来可进一步优化并引入AI技术提升智能化水平。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
|
11天前
|
Java 关系型数据库 MySQL
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术的房屋租赁系统,旨在通过自动化和信息化手段提升房屋管理效率,优化租户体验。系统采用JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Layui和Spring Boot 2.0等技术栈,实现了高效的房源管理和便捷的租户服务。通过该系统,房东可以轻松管理房源,租户可以快速找到合适的住所,双方都能享受数字化带来的便利。未来,系统将持续优化升级,提供更多完善的服务。
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
|
3天前
|
关系型数据库 Unix MySQL
MySQL是一种关系型数据库管理系统
MySQL是一种关系型数据库管理系统
11 2
|
13天前
|
存储 SQL 专有云
支持配置审计日志的存储数据库
审计日志作为企业监管平台的重要依据,同时也是“等保三级”认证的必要考察项之一。Dataphin V4.3版本支持设置平台日志的存储数据源,帮助用户快速获取审计日志,同时介绍了不同部署模式的Dataphin如何查看审计日志的方法。
|
28天前
|
存储 NoSQL 关系型数据库
可以存储文件的数据库有哪些?
可以存储文件的数据库有哪些?
22 6
|
1月前
|
存储 监控 数据可视化
SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
【9月更文挑战第2天】SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
66 9
|
2月前
|
前端开发 数据库 虚拟化
太6了!用Python快速开发数据库入库系统
太6了!用Python快速开发数据库入库系统
|
2月前
|
缓存 NoSQL 数据库
Web服务器与数据库优化:提升系统性能的最佳实践
【8月更文第28天】在现代的Web应用中,Web服务器与后端数据库之间的交互是至关重要的部分。优化这些组件及其相互作用可以显著提高系统的响应速度、吞吐量和可扩展性。本文将探讨几种常见的优化策略,并提供一些具体的代码示例。
64 1
|
2月前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的前后端分离的选课管理系统(含教程&源码&数据库数据)
本文介绍了一个基于Spring Boot和Vue.js技术栈的高校选课管理系统的设计与实现。该系统采用前后端分离架构,旨在提高选课效率、优化资源分配及提升用户体验。技术栈包括:后端Spring Boot 2.0、前端Vue 2.0、数据库MySQL 8.0、开发环境JDK 1.8和Maven 3.6等。系统功能覆盖登录、学生信息管理、选课管理、成绩查询等多个方面,并针对学生、教师和管理员提供了不同的操作界面。系统采用了响应式设计,支持多设备访问,并通过Element UI增强了界面的友好性和交互性。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的前后端分离的选课管理系统(含教程&源码&数据库数据)

热门文章

最新文章

下一篇
无影云桌面