PostgrerSQL基本使用与数据备份

news2024/11/18 16:26:00

前言

上篇了解了 PostgrerSQL 数据库的部署PostgreSQL关系型数据库介绍与部署-CSDN博客,本篇将继续就其基本操作、备份与还原内容做相关介绍。

目录

一、数据库的操作

1. 本机登录

2. 开启远程登录

2.1 开放远程端口

2.2 编辑配置文件

2.3 修改配置密码

2.4 重启数据库服务

2.5 远程登录

3. 创建数据库

4. 查看数据库

5. 切换当前数据库 

6. 删除数据库 

二、数据表的操作

1. 新建表

2. 插入数据 

3. 查看表结构和内容 

4. 更新表内容

5. 删除表内容 

三、PostgreSQL 管理

1. 配置文件介绍

2. 数据库相关概念

2.1 数据库的结构组织

2.2 PostgreSQL 中的术语

2.3 模版数据库template0 和template1

3. Schema 模式

3.1 创建一个新的 Schema

3.2 在新的 Schema 中创建一个新的表

3.3 查看 Schema 表

3.4 删除模式 

四、用户管理

1. 创建用户

2. 修改密码

3. 授权管理

4. 用户删除

五、备份与还原 

1. 单数据库备份与恢复

2. 所有库备份与还原

3. 更多选项


一、数据库的操作

1. 本机登录

格式:
psql -h 服务器 -U 用户名 -d 数据库 -p 端口地址 
psql -h 127.0.0.1 -U dbuser -d exampledb -p 5432

$ psql   
# 连接数据库,默认用户和数据库都是postgres
# 相当于系统用户postgres以同名数据库用户的身份,登录数据库,这是不用输入密码的。如果一切正常,系统提示符会变为"postgres=#”,表示这时己经进入了数据库控制台。

[root@localhost ~]# su - postgres # 切换 postgres 用户
-bash-4.2$ psql                   # 登录 PostgreSQL 控制台,可以输入该数据库支持的一些命令
psql (14.11)
输入 "help" 来获取帮助信息.

postgres=# alter user postgres with password '123123'; # 修改 postgres 用户密码
ALTER ROLE
postgres=# \q                     # 退出该数据库
-bash-4.2$ 

方法一:在默认配置下,本机访问 PostgreSQL

[root@localhost ~]# su - postgres               # 切换 postgres 用户
-bash-4.2$ psql                                 # 登录 PostgreSQL 控制台
psql (14.11)
输入 "help" 来获取帮助信息.

postgres=#                       # 此时说明用 postgres 身份登录数据库,且不需要密码
postgres=# \password postgres    # 给 postgres 用户设置密码
Enter new password for user "postgres": 
再输入一遍:

方法二:创建新用户来访问 PostgreSQL

[root@localhost ~]# su - postgres              # 切换linux用户postgres
-bash-4.2$ psql                                # 执行psql
psql (14.11)
输入 "help" 来获取帮助信息.

postgres=# create user dbfql with password '123456'; # 创建数据库用户dbfql
CREATE ROLE
postgres=# craete database db1 owner dbfql;          # 创建数据库db1
CREATE DATABASE
postgres=# grant all privileges on database db1 to dbfql;  # 将db1数据库的所有权都赋予dbdql
GRANT  
postgres=# \q-bash-4.2$ exit
登出

[root@localhost ~]# useradd dbfql                    # 创建普通用户dbfql
[root@localhost ~]# passwd dbfql
[root@localhost ~]# su - dbfql
[dbfql@localhost ~]$ psql -d db1
psql (14.11)
输入 "help" 来获取帮助信息.

db1=> 

方法三:已存在普通用户,在数据库创建同名用户和数据库

[root@localhost ~]# id lisi
uid=1002(lisi) gid=1002(lisi) 组=1002(lisi)
[root@localhost ~]# su - postgres
-bash-4.2$ psql
psql (14.11)
输入 "help" 来获取帮助信息
postgres=# create user lisi with password '123456';
CREATE ROLE
postgres=# create database lisidb owner lisi;
CREATE DATABASE
postgres=# grant all privileges on database lisidb to lisi;
GRANT
postgres=# \q
-bash-4.2$ exit
登出

[root@localhost ~]# su - lisi
[lisi@localhost ~]$ psql -d lisidb
psql (14.11)
输入 "help" 来获取帮助信息.

lisidb=> 

2. 开启远程登录

以上篇编译安装目录为例,默认安装配置文件路径如下:

  • 主要配置文件:/var/lib/pgsql/14/data/postgresql.conf
  • 主机基于身份验证配置文件:/var/lib/pgsql/14/data/pg_hba.conf

2.1 开放远程端口

允许TCP端口5432的传入连接,并将规则永久性地添加到防火墙配置中,防火墙关闭可以忽略
firewall-cmd --add-port=5432/tcp --permanent  # --permanent选项表示该规则是永久性的
firewall-cmd --reload                         # 重新加载防火墙配置

2.2 编辑配置文件

[root@localhost ~]# vim /pgsql/data/postgresql.conf # 主要配置文件
listen_addresses = '*'
# 在所有IP地址上监听,从而允许远程连接到数据库服务器,默认只允许本机登录

[root@localhost ~]# vim /pgsql/data/pg_hba.conf     # "主机基于身份验证" 配置文件
# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
host    all             all             192.168.190.0/24        trust   # 添加此行
# 允许任意用户(第二个 "all")从192.168.190段地址上以md5密码方式访问任意数据库(第一个 "all")
# peer: 使用 "peer" 认证方式时,系统会检查操作系统用户是否与要连接到数据库的数据库角色名称相匹配;不需要输入密码来连接到数据库,只需确保操作系统用户名和数据库角色名称匹配即可完成认证。
# md5:当使用 "md5" 时,客户端连接时需要提供经过 MD5 加密的密码进行认证。
# trust方法表示无需密码即可连接数据库
# scram-sha-256:相比之下,"scram-sha-256" 使用了更安全的加密机制,比 MD5 更安全。

2.3 修改配置密码

[root@localhost ~]# su - postgres
上一次登录:日 3月 24 15:17:53 CST 2024pts/1 上
[postgres@localhost ~]$ psql
psql (14.1)
Type "help" for help.

postgres=# alter user postgres with password '123123';  # 登录数据修改密码
ALTER ROLE
或者:
postgres=# \password postgres   # 给 postgres 用户设置密码
Enter new password for user "postgres": 
再输入一遍:

2.4 重启数据库服务

[root@localhost ~]# systemctl restart postgresql.service
或者:
[postgres@localhost ~]$ pg_ctl restart   # 重启

2.5 远程登录

① 使用 linux 系统字符登录

[root@localhost ~]# psql -U postgres -h 192.168.190.100
用户 postgres 的口令:
psql (14.11, 服务器 14.1)
输入 "help" 来获取帮助信息.

postgres=# 

 ② 使用 Navicat 工具登录(可能存在版本问题,可以修改 pg_hba.conf 认证方式为 trust)

3. 创建数据库

在数据库控制台下创建操作:
postgres=# create database mydb;
CREATE DATABASE
也可以在壳下进行创建操作:
[postgres@localhost ~]$ createdb 库名;

4. 查看数据库

mydb=# \l
                                     数据库列表
   名称    |  拥有者  | 字元编码 |  校对规则   |    Ctype    |       存取权限        
-----------+----------+----------+-------------+-------------+-----------------------
 mydb      | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
 postgres  | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
 template0 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres

5. 切换当前数据库 

postgres=# \c mydb;
您现在已经连接到数据库 "mydb",用户 "postgres".

6. 删除数据库 

postgres=# drop database mydb;  # 注意,删除数据库是一个不可逆的操作
ERROR:  database "mydb" is being accessed by other users
DETAIL:  There is 1 other session using the database.
# 在PostgreSQL中,如果有其他用户正在使用数据库,你就不能删除它

postgres=# select * from pg_stat_activity where datname = 'mydb';
# 可以通过查询 pg_stat_activity 视图来检查是否有活动的会话,确保没有用户正在使用数据库 "mydb",再次删除

二、数据表的操作

1. 新建表

语法与mysql基本相似:
postgres=# \c mydb    # 切换到 mydb 库
You are now connected to database "mydb" as user "postgres".
mydb=# create table class (id int,name char(15));  # 新建表 class
CREATE TABLE
# 在 mysql 中 auto_increment 代表自增,在这里使用 serial 可以实现自增,但是不能与 int 一起使用

2. 插入数据 

mydb=# insert into class values (1,'zhangsan'); 
mydb=# insert into class values (2,'lisi');

3. 查看表结构和内容 

mydb=# \dt                  # 列出当前数据库中的所有表
         List of relations
 Schema |  Name  | Type  |  Owner   
--------+--------+-------+----------
 public | class  | table | postgres


mydb=# \d class             # 查看表结构,不指定表可以查看当前库所有表,\d相当于desc
                  Table "public.class"
 Column |     Type      | Collation | Nullable | Default 
--------+---------------+-----------+----------+---------
 id     | integer       |           |          | 
 name   | character(15) |           |          | 

mydb=# select * from class; # 查看表内容
 id |      name       
----+-----------------
  1 | zhangsan       
  2 | lisi   

4. 更新表内容

mydb=# select * from class;
 id |      name       
----+-----------------
  2 | lisi           
  1 | wangwu         
(2 rows)

mydb=# select * from class order by id;  # 按 id 升序查看
 id |      name       
----+-----------------
  1 | wangwu         
  2 | lisi 

5. 删除表内容 

mydb=# delete from class where id=1;
mydb=# select * from class;
 id |      name       
----+-----------------
  2 | lisi 

三、PostgreSQL 管理

1. 配置文件介绍

PostgreSQL 使用环境变量 PGDATA 指向的目录做为数据存放的目录。这个目录是在安装时指定的,所以在安装时需要指定一个合适的目录作为数据目录的根目录,而且,每一个 PG 数据库实例都需要有这样的一个目录。此数据目录的初始化是使用命令 initdb 来完成的。初始化完成后, PGDATA 数据目录下就会生成三个配置文件

  • postgresql.conf:数据库实例的主配置文件,基本上所有的配置参数都在此文件中 
  • pg_hba.conf:认证配置文件,配置了允许哪些IP的主机访问数据库,认证的方法是什么等信息
  • pg_ident.conf:认证方式ident的用户映射文件

2. 数据库相关概念

2.1 数据库的结构组织

在一个 PostgreSQL 数据库系统中,数据的组织结构可以分为以下五层:

  • 实例: 一个 PostgreSQL 对应一个安装的数据目录$PGDATA,即一个instance实例
  • 数据库:一个 PostgreSQL 数据库服务下可以管理多个数据库,当应用连接到一个数据库时,一般只能访问这个数据库中的数据,而不能访问其他数据库中的内容默认情况下初始实例只有三个数据库: postgres、template0、template1
  • 模式:一个数据库可以创建多个不同的名称空间即 Schema,用于分隔不同的业务数据
  • 表和索引:一个数据库可以有多个表和索引。在 PostgreSQL 中表的术语称为 Relation,而在其他数据库中通常叫Table
  • 行和列:每张表中有很多列和行数据。在 PostgreSQL 中行的术语一般为“Tuple”,而在其他数据库中则叫“Row”

2.2 PostgreSQL 中的术语

PostgreSQL 有一些术语与其他数据库中不一样,了解了这些术语的意思,就能更好地看懂PostgreSQL 中的文档。与其他数据库不同的术语如下:

  • Relation:表示表table或索引index,具体表示的是Table还是 Index需要看具体情况
  • Tuple:表示表中的行,在其他数据库中使用Row来表示
  • Segment:每个表和索引都单独对应一个文件,,即为segment,如果文件大小超过1GB,会创建多个相同名称但后缀不同的文件
  • Page:表示在磁盘中的数据块。在文件中以块为单位存放数据, 默认值为8KB,最大可以为32KB
  • Buffer:表示在内存中的数据块

2.3 模版数据库template0 和template1

template1 和 template0 是 PostgreSQL 的模板数据库。所谓模板数据库就是创建新 database 时,PostgreSQL 会基于模板数据库制作一份副本,其中会包含所有的数据库设置和数据文件。

PostgreSQL安装好以后会默认附带两个模板数据库: 默认模板库为 template0 和template1。默认模板库为 template1,也可以指定template0

template1 和t emplate0 的区别主要有两点:

  • template1 可以连接,template0 不可以连接
  • 使用 template1 模板库建库时不可指定新的encoding 和locale,而 template0可以

注意:template0和template1都不能被删除。

3. Schema 模式

在 PostgreSQL 中,Schema 是一种用于组织和命名数据库对象(如表、视图、函数等)的机制。它提供了命名空间隔离、权限控制和代码组织的功能,使得在同一个数据库中可以创建多个相互独立的对象,更精细地控制用户对数据库对象的访问,以及更好地组织和管理数据库对象。每个数据库都包含一个默认的 Schema,名为 public,但是你也可以创建自己的 Schema。 

使用模式的优势:

  • 允许多个用户使用一个数据库并且不会互相干扰
  • 将数据库对象组织成逻辑组以便更容易管理
  • 第三方应用的对象可以放在独立的模式中,这样它们就不会与其他对象的名称发生冲突模式类似于操作系统层的目录,但是模式不能嵌套

3.1 创建一个新的 Schema

mydb=# create schema myschema;
CREATE SCHEMA
mydb=# \dn        # 查看模式

3.2 在新的 Schema 中创建一个新的表

mydb=# create table myschema.student (id serial,name char(15));
CREATE TABLE

3.3 查看 Schema 表

mydb=# \dt myschema.*         # 查看 Schema 中的所有表
           List of relations
  Schema  |  Name   | Type  |  Owner   
----------+---------+-------+----------
 myschema | student | table | postgres

mydb=# insert into myschema.student values (1,'lisi');
INSERT 0 1
mydb=# select * from myschema.student;
 id |      name       
----+-----------------
  1 | lisi  

3.4 删除模式 

格式:
drop schema schema_name;

示例:
postgres=# \c mydb1
mydb1=# create schema schema_db1;
mydb1=# \dn
    List of schemas
    Name    |  Owner   
------------+----------
 myschema   | postgres
 public     | postgres
 schema_db1 | postgres
mydb1=# drop schema schema_db1;  # 删除模式
mydb1=# \dn
   List of schemas
   Name   |  Owner   
----------+----------
 myschema | postgres
 public   | postgres

四、用户管理

新建用户、修改密码等操作,前文已做相关介绍,这里继续介绍一下用户的权限管理与用户删除。

1. 创建用户

mydb=# create user fql with password '123456';  # 创建用户 fql 并设置密码 123456
CREATE ROLE

2. 修改密码

mydb=# alter user fql with password '666666'; # 修改用户 fql 密码为 666666
ALTER ROLE

3. 授权管理

数据库授权,赋予指定账户指定数据库所有权限,格式如下:
grant all privileges on database 'dbname' To 'username';

mydb=# grant all privileges on database mydb to fql;
# 将数据库 mydb 赋予用户 fql 所有权限
mydb=# grant all privileges on all tables in schema public to fql;
# 但此时用户还是没有读写权限,需要继续授权表,授予用户 fql 对 public Schema 中的所有表的所有权限
# 注意,该sql语句必须在所要操作的数据库里执行

查看权限:
[root@localhost ~]# psql -U fql -d mydb;
\du             # 列出所有的用户,包括他们的角色、登录权限、超用户权限等信息
\du username    # 查看指定用户的权限

移除指定账户指定数据库/表所有权限:
mydb=# revoke all privileges on database mydb from fql;
mydb=# revoke all privileges on all tables in schema public from fql;

4. 用户删除

mydb=# drop user 用户名;
# 注意,需要删除给予库/表的权限,才可以执行删除动作

五、备份与还原 

1. 单数据库备份与恢复

PostgreSQL 提供了 pg_dump 实用程序来简化备份单个数据库的过程。 必须以对要备份的数据库具有读取权限的用户身份运行此命令。以 postgres 用户身份登录:

[root@localhost ~]# su - postgres
[postgres@localhost ~]$ 

① 通过运行以下命令将数据库的内容转储到文件中

[postgres@localhost ~]$ pg_dump mydb > /pgsql/mydb.bak

[root@localhost pgsql]# ll
总用量 8
drwx------. 19 postgres postgres 4096 4月   6 15:06 data
-rw-rw-r--.  1 postgres postgres 3500 4月   6 18:30 mydb.bak
# 生成的备份文件 mydb.bak 可以使用 scp 传输到另一台主机,也可以存储在本地以供以后使用

 ② 模拟删除数据库,并新建空库

[root@localhost pgsql]# psql
postgres=# drop database mydb;

恢复数据库,需要先建立一个空库:
postgres=# create database mydb1;

③ 恢复,验证数据

[root@localhost pgsql]# psql mydb1 < /pgsql/mydb.bak;
postgres=# \c mydb1
You are now connected to database "mydb1" as user "postgres".
mydb1=# \dt
         List of relations
 Schema |  Name  | Type  |  Owner   
--------+--------+-------+----------
 public | class  | table | postgres
 public | class1 | table | postgres

备份格式有几种选择:

  • *.bak:压缩二进制格式
  • *.sql:明文转储
  • *.tar:tarball

注意:默认情况下,PostgresQL 将忽路备份过程中发生的任何错误,这可能导致备份不完整,要防止这种情况,可以使用 -1 选项运行 pg_dunp 命令。这会将整个备份过程视为单个事务,这将在发生错误时阻止部分备份。 

2. 所有库备份与还原

由于 pg_dump 一次只创建一个数据库的备份,因此它不会存储有关数据库角色或其他群集范围配置的信息。 要存储此信息并同时务份所有数据库,可以使用 pg_dumpall。

① 创建备份文件

[postgres@localhost ~]$ pg_dumpall > /pgsql/allpg.bak

② 从备份还原所有数据库

[postgres@localhost ~]$  psql -f /pgsql/allpg.bak postgres
# -f 选项用于指定要执行的 SQL 脚本文件或文件路径

3. 更多选项

备份数据库:
pg_dump -U postgres -f /pgsql/postgres.sgl postgres
# 导出 postgres 数据岸保存为 postgres.sql
pg_dump -U postgres -f /pgsql/postgres.sql -t test postgres
# 导出 postgres 数据库中表 test 的数据
pg_dump -U postgres -F t -f /pgsql/postgres.tar postgres
# -F t:这个选项指定了备份文件的格式。t 表示 "tar" 格式,导出 postgres 数据库以 tar 形式压缩保存为 postgres.tar

恢复数据库:
psgl-postgres -f /pgsql/postgres.sql newsql
# 恢复 postgres.sql 数据到 newsql 数据库
pg_restore -- 
# 从 pg_dump 创建的备份文件中恢复 PostgresQL 数据库,用于恢复由 pg_dump 转储的任何非纯文本格式中的PostgreSQL 数据库
pg_restore -U postgres -d newsql /pgsql/postgres.tar
# 恢复 postgres.tar 数据列 newsql 数据库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1573389.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于单片机高压输电线路微机保护系统设计

**单片机设计介绍&#xff0c;基于单片机高压输电线路微机保护系统设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机高压输电线路微机保护系统设计是一个涉及电力系统继电保护的复杂工程。该系统主要利用单片机作为控制核心&…

【深度学习】海洋生物数据集,图片分类

文章目录 任务描述数据收集数据处理模型训练指标评测web app代码和帮助 任务描述 收集9种以上的海洋生物图片&#xff0c;然后基于深度学习做一个分类模型&#xff0c;训练完成后&#xff0c;分类模型就可以对未知图片进行分类。 在之后随便传一张图片&#xff0c;分类模型就…

MySQL 50 道查询题汇总,足以巩固大部分查询(附带数据准备SQL、题型分析、演示、50道题的完整SQL)

目录 MySQL 50 道查询题&#xff0c;足以巩固大部分查询数据准备&#xff1a;创建表sql添加表数据sql 50道查询题目汇总01 - 05 题&#xff1a;1、查询 “01” 语文成绩比 “02” 数学成绩高的学生的信息及课程分数2、查询 "01语文课程"比"02数学课程"成绩…

【前端】JavaScript(概念+语法+形式+变量+数组+函数+作用域)

文章目录 JavaScript一、JavsScript概念1.JavaScript的开发方向2.JavaScript和CSS、HTML的关系3.JavaScript运行过程4.JavaScript的组成 二、JavaScript的语法1.JS的书写形式1.行内式2.内嵌式3.外部式4.注释5.输入输出1.prompt和alert2.输出: console.log 2.变量的使用1.创建变…

如何使用CSS构建一个瀑布流布局

如何使用CSS构建一个瀑布流布局 瀑布流布局是一种常见的网页布局方式&#xff0c;其中元素以不同的大小排列&#xff0c;且行与列之间没有不均匀的间隙。在瀑布流布局中&#xff0c;即使某一行或列中的元素较短&#xff0c;下一个元素也会占据空间。 如何实现瀑布流布局 实现…

双连通分量算法

1. 连通图概念 连通图&#xff1a;无向图任意两点之间存在通路。 强连通&#xff1a;有向图&#xff08;前提&#xff09;中&#xff0c;任意两点都有至少一条通路&#xff0c;则此图为强连通图。 弱连通图&#xff1a;将有向图的有向边换成无向边得到的图是连通图&#xff0c…

如何在 Ubuntu 上安装和配置 Tomcat 服务器?

简介&#xff1a;最近有粉丝朋友在问如何在 Ubuntu 上安装和配置 Tomcat 服务器&#xff1f;今天特地写这篇文章进行解答&#xff0c;希望能够帮助到大家。 文章目录 Ubuntu上安装和配置Tomcat的详细步骤Tomcat在Linux环境下的安装与配置一、下载并上传Tomcat压缩包二、启动To…

【单片机】CJSH22-CH2O,甲醛传感器,甲醛传感器数据读取处理

原理图 解析程序 逻辑是&#xff1a; 1、初始化串口和定时器10ms中断 2、循环读取一帧数据到rev_CH2O_bufferdata 3、在主函数解析数据rev_CH2O_bufferdata 4、最终的pm2.5数值就是CH2O_value 使用CH2O_value的数据即可。 PPB单位&#xff0c;除以1000就是ppm&#xff0c;再…

华为ensp中高级acl (控制列表) 原理和配置命令 (详解)

作者主页&#xff1a;点击&#xff01; ENSP专栏&#xff1a;点击&#xff01; 创作时间&#xff1a;2024年4月6日23点18分 高级acl&#xff08;Access Control List&#xff09;是一种访问控制列表&#xff0c;可以根据数据包的源IP地址、目标IP地址、源端口、目标端口、协议…

每日五道java面试题之ZooKeeper篇(三)

目录&#xff1a; 第一题. 会话管理第二题. 服务器角色第三题. Zookeeper 下 Server 工作状态第四题. 数据同步第五题. zookeeper 是如何保证事务的顺序一致性的&#xff1f; 第一题. 会话管理 分桶策略&#xff1a;将类似的会话放在同一区块中进行管理&#xff0c;以便于 Zoo…

Chatgpt掘金之旅—有爱AI商业实战篇|社交媒体管理|(七)

演示站点&#xff1a; https://ai.uaai.cn 对话模块 官方论坛&#xff1a; www.jingyuai.com 京娱AI 一、AI技术社交媒体创业有哪些机会&#xff1f; 人工智能&#xff08;AI&#xff09;技术作为当今科技创新的前沿领域&#xff0c;为创业者提供了广阔的机会和挑战。随着AI技…

Lecture 1~3 About Filter

文章目录 空间域上的滤波器- 线性滤波器盒状滤波器Box Filter锐化Sharpening相关运算 vs. 卷积运算 Correlation vs. Convolution - 非线性滤波器高斯滤波器Gaussian filter - 实际问题- 纹理texture 频域上的滤波器 滤波的应用- 模板匹配- 图像金字塔 空间域上的滤波器 图像…

假期别闲着:REST API实战演练之客户端使用Rest API

在上一篇中我们说了一下如何创建简单的rest api&#xff08;假期别闲着&#xff1a;REST API实战演练之创建Rest API-CSDN博客&#xff09;&#xff0c;我们创建了那就是为了使用的&#xff0c;下面我们就看看&#xff0c;通过构建一个客户端程序如何使用我们创建的rest api吧。…

深入了解iPhone GPU技术:优化游戏图形渲染

摘要 了解你的显卡对于在电脑上玩现代图形要求高的游戏非常重要。本文介绍了如何轻松查看你的显卡型号以及为什么显卡在玩电脑游戏时如此关键。 引言 随着电脑游戏的发展&#xff0c;现代游戏对硬件性能的要求越来越高。十年前发布的显卡已经无法满足当前游戏的需求。因此&…

DC9 Debian和sql注入

信息收集 sudo arp-scan -l 列出局域网主机 arp-scan向局域网中所有可能的ip地址发出arp请求包&#xff0c;如果得到arp回应&#xff0c;就证明局域网中某台主机使用了该ip dc9的ip &#xff1a; 192.168.146.133 访问网页 cms为Debian 端口扫描 22端口是filtered 隐藏目…

设计模式之建造者模式:灵活可扩展的对象创建过程

目录 一、什么是建造者模式 二、建造者模式的应用场景 三、建造者模式的优缺点 3.1. 优点 3.2. 缺点 四、建造者模式示例 4.1. 问题描述 4.2. 问题分析 4.3. 代码实现 五、建造者模式的另一种实现方式 六、总结 一、什么是建造者模式 建造者模式&#xff08;Builder…

Prefetch

Prefetch &#xff08;<link rel"prefetch">&#xff09; 是一种浏览器优化&#xff0c;它允许我们在需要后续路由或页面之前获取可能需要的资源。可以通过几种方式实现预取。它可以在 HTML 中以声明方式完成&#xff08;例如在下面的示例中&#xff09;&#…

设计模式——桥接模式07

桥接模式是将抽象部分与实现部分分离&#xff0c;可实现两部分的组合使用。 例如 遥控器 &#xff08;抽象部分&#xff09;与 设备&#xff08;实现部分 电视&#xff0c;空调等&#xff09;。遥控器调用的是 设备方实现的接口。 设计模式&#xff0c;一定要敲代码理解 抽象模…

webpack-前置知识

前置知识-node的内置模块path path模块用于对路径和文件进行处理&#xff0c; 从路径中获取信息 dirname: 获取文件的父文件夹。 basename:获取文件名。 extname: 获取文件拓展名。 const path require("path")const fileName "C://test/a/b/c.txt"//.t…

租用阿里云的服务器多少钱?30元、61元、99元、165元、199元

租个阿里云的服务器多少钱&#xff1f;很便宜&#xff0c;云服务器2核2G3M固定带宽99元一年、2核4G服务器30元3个月、199元一年&#xff0c;轻量应用服务器2核2G3M配置61元一年、2核4G4M带宽165元一年&#xff0c;可以在阿里云CLUB中心查看 aliyun.club 当前最新的优惠券和活动…