PostgreSQL-01-入门篇-简介
文章目录
-
- 1. PostgreSQL是什么?
- 2. PostgreSQL 历史
-
- 2.1. 伯克利 POSTGRES 项目
- 2.2. Postgres95
- 2.3. PostgreSQL来了
- 3. PostgreSQL vs MySQL
- 4. 安装
-
- 4.1 Windows 安装
- 4.2 linux 安装
- 4.3 docker安装
1. PostgreSQL是什么
PostgreSQL 是一个基于加州大学伯克利分校计算机系开发的 POSTGRES 版本 4.2 的对象-关系型数据库管理系统 (ORDBMS)。它与 MySQL 类似,但 POSTGRES 许多先进的概念在当时领先于其他商业数据库系统。
PostgreSQL 支持大多数 SQL 标准,并提供了许多现代特性,包括:
- 复杂查询
- 外键
- 触发器
- 可更新视图
- 事务完整性
- 多版本并发控制 (MVCC)
此外,PostgreSQL 具有很高的可扩展性,允许添加:
- 新的数据类型
- 函数
- 操作符
- 聚集函数
- 索引方法
- 过程语言
由于其宽松的许可证,任何人都可以免费使用、修改和分发 PostgreSQL,无论是用于私人、商业还是学术研究目的。
排名:
2. PostgreSQL 历史
2.1. 伯克利 POSTGRES 项目
由 Michael Stonebraker 教授领导的 POSTGRES 项目是由防务高级研究项目局 (DARPA)、陆军研究办公室 (ARO)、国家科学基金会 (NSF) 以及 ESL, Inc. 共同赞助的。POSTGRES 的开发始于 1986 年,其目的是探索和实现新的数据库技术,尤其是面向对象的数据模型。
POSTGRES 经历了几轮主要的版本更新。第一个演示系统在 1987 年完成,并在 1988 年的 ACM-SIGMOD 大会上展示。1989 年 6 月发布了第一个外部可用版本 1。1990 年 6 月发布的版本 2 包含了重新设计的规则系统。版本 3 在 1991 年推出,增加了多存储管理器的支持,并改进了查询执行器和规则系统。
POSTGRES 被广泛应用于各种研究和生产环境,包括财务数据分析系统、喷气引擎性能监控软件包、小行星跟踪数据库、医疗信息数据库以及地理信息系统。它也被许多大学用于教学。此外,lllustra Information Technologies(后来被 Informix 收购,而 Informix 现已被 IBM 所有)拿到了 POSTGRES 的代码并将其商业化。1992 年末,POSTGRES 成为了 Sequoia 2000 科学计算项目的主要数据管理器。
随着外部用户社区的增长,代码维护的时间成本增加,为了减少支持负担,伯克利的 POSTGRES 项目在版本 4.2 时正式终止。
2.2. Postgres95
1994 年,Andrew Yu 和 Jolly Chen 向 POSTGRES 中添加了 SQL 语言解释器,并将源代码以新名字 Postgres95 发布到互联网上。Postgres95 是 POSTGRES 伯克利代码的开源继承者。
Postgres95 的源代码是完全的 ANSI C,代码量减少了 25%,许多内部修改提高了性能和可维护性。Postgres95 的 1.0.x 版本在 Wisconsin Benchmark 测试中的性能比 POSTGRES 版本 4.2 快 30-50%。除了修复错误外,还包括以下主要改进:
- 原有的查询语言 PostQUEL 被 SQL 替代。
- 增加了一个利用 GNU Readline 进行交互式 SQL 查询的工具 psql,很大程度上取代了旧的 monitor 程序。
- 增加了新的前端库 libpgtcl,用于支持基于 Tcl 的客户端。
- 彻底重写了大对象的接口。
- 去掉了实例级的规则系统,但规则仍以重写规则的形式存在。
- 在发布的源码中增加了一个简短教程,介绍 SQL 和 Postgres95 的特性。
- 使用 GNU make 编译,支持使用未经修补的 GCC 编译。
2.3. PostgreSQL来了
到了 1996 年,“Postgres95” 这个名字不再适用。因此,选择了一个新名字 PostgreSQL 来反映与最初的 POSTGRES 和最新的具有 SQL 能力的版本之间的关系。同时,版本号从 6.0 开始,将版本号放回到最初由伯克利 POSTGRES 项目开始的序列中。
许多人继续使用 “Postgres” 来指代 PostgreSQL(现在很少使用全大写字母),这种用法也被广泛接受为一种昵称或别名。
Postgres95 的开发重点在于识别和解决后端代码的问题,而 PostgreSQL 的开发则转向了更具争议性的特性和功能,尽管这两个方面的工作同时进行。
3. PostgreSQL vs MySQL
PostgreSQL
MySQL
许可证
Postgres许可(类似MIT)
GPL许可
性能
互联网规模
与Postgres相当,在极端的写入密集型工作负载下表现更好
功能
在事务处理、安全性、查询优化器、JSON、CTE和WindowFunctions方面更优秀。
不错
可扩展性
PAM+扩展功能
PAM
易用性
严谨并遵循标准
宽容且遵循惯例
连接模型
每个进程对应一个连接
每个线程对应一个连接
生态
繁荣的社区和更多的托管提供商
大量的安装
可运维性
不错,学习曲线稍高一些
不错,易于使用和操作
根据 2024 年 Stack Overflow 的调研结果,PostgreSQL 已经超越 MySQL 成为最受开发者欢迎的数据库。随着 MySQL 逐步闭源,其客户端遵循 GPL 许可协议,这意味着开发人员要么向 Oracle 付费,要么将自己的应用程序开源。相比之下,PostgreSQL 采用了类似于 MIT 的许可协议,允许开发人员在开源或闭源产品中自由使用,这使得 PostgreSQL 成为了一种极具吸引力的选择。
PostgreSQL 的优势
- 许可灵活性:PostgreSQL 采用了类似于 MIT 的许可协议,这使得开发人员可以在开源或闭源产品中自由使用,无需支付额外费用。
- 性能优化:PostgreSQL 支持多种商业解决方案所需的性能优化功能,包括地理空间数据支持、无读锁并发等,这使得它被广泛应用于大型系统。
- 复杂查询支持:对于需要执行复杂查询的系统来说,PostgreSQL 表现尤为出色。
商业智能 (BI) 应用:在 BI 应用程序中表现出色,尤其适合需要快速读写速度的数据分析和数据仓库应用程序,因此它也非常适用于 OLTP/OLAP 系统。 - 混合数据类型支持:能够在单个产品中存储结构化和非结构化数据类型,支持多种数据类型,如 JSON。多年来,PostgreSQL 的一项重要创新是在 PostgreSQL 9.2 中引入了生成 JSON 数据的功能。
PostgreSQL 的功能与扩展
- OLTP (在线事务处理):PostgreSQL 支持事务的 ACID 属性,可以进行 CRUD (创建-读取-更新-删除) 操作。此外,它还支持一般关系数据库常见的视图 (View)、物化视图 (Materialized View)、触发器 (Trigger) 和存储过程等功能。
- OLAP (在线分析处理):PostgreSQL 可以用于 OLAP 中常用的聚合处理。基于 HTAP (混合事务/分析处理) 架构,PostgreSQL 可以在同一数据库中高效地运行 OLTP 和 OLAP 操作。HTAP 架构打破了事务处理和分析之间的界限,使得企业能够做出更明智和更实时的商业决策,避免了传统架构中 OLTP 和 OLAP 数据库分离所带来的复杂性和延迟。
- FDW (Foreign Data Wrapper):FDW 是 PostgreSQL 中的一个扩展,允许访问外部数据库中的表结构或数据。SQL 标准在 2003 年加入了 SQL/MED (SQL Management of External Data),用于标准化从 SQL 数据库访问远程对象的方法。PostgreSQL 9.1 支持读取远程对象,9.3 支持写入。现在,FDW 可以访问大部分关系型数据库、NoSQL 数据库和外部文本文件。
- 流式计算:PipelineDB 是一个用于高性能时间序列聚合的 PostgreSQL 扩展,旨在为实时报告和分析应用提供支持。
- 地理空间:PostGIS 是 PostgreSQL 的一个空间扩展,增加了对地理对象的支持,允许在 SQL 中查询位置信息。
- 时间序列:Timescale 扩展了 PostgreSQL 的时间序列和分析功能,例如,开发人员可以将金融数据流、市场数据与其他业务数据结合起来,构建新的应用程序并发现独特的见解。
- 分布式表:CitusData 是一个 PostgreSQL 的扩展,将 PostgreSQL 转变为分布式数据库,支持大规模并行处理。
这些功能和扩展使得 PostgreSQL 成为一个非常有竞争力的数据库选择,无论是在商业应用还是开源项目中。
4. 安装
PostgreSQL 下载地址
4.1 Windows 安装
访问上面的官方下载地址,选择对应的Windows版本下载,一路next就ok了。
4.2 linux 安装
-
创建 PostgreSQL 安装目录
mkdir -p /opt/postgresql mkdir -p /opt/postgresql/data cd /opt/postgresql/data
-
下载并解压 PostgreSQL 安装包
# 然后将Postgresql-14.2-Linux.tar.gz文件拖动上传到服务器中opt/postgresql下 tar -zxvf Postgresql-14.2-Linux.tar.gz
-
配置、编译并安装 PostgreSQL
# 1. 进入解压后的目录cd postgresql-12.9/ # 2. 在解压缩后的目录中执行配置命令 ./configure --prefix=/opt/postgresql # 3. 编译安装,在解压目录下执行如下命令 make && make install
注意:
-
如果在执行第二步出现如下错误
configure: error: readline library not found
则需要执行如下命令yum -y install -y readline-devel
,然后重新执行./configure --prefix=/opt/postgresql
以及后面步骤。 -
同理如果出现
configure: error: zlib library not found
则需要执行如下命令yum install zlib-devel
,然后重新执行./configure --prefix=/opt/postgresql
以及后面步骤。
-
-
安装工具
# 进入解压后的目录中 cd contrib # 执行如下指令 make && make install
-
创建用户并授权
# 创建 PostgreSQL 用户 groupadd postgres useradd -g postgres postgres#先回到opt目录 cd /opt # 修改 PostgreSQL 目录用户 chown -R postgres:postgres postgresql
-
修改环境变量
# 1.登录postgres账户su postgres # 2.执行指令修改环境变量 vim /home/postgres/.bash_profile # 3.在文件中添加如下内容 #------------------------------------------------- export PGHOME=/opt/postgresql export PGDATA=/opt/postgresql/data export PATH=$PGHOME/bin:$PATH export MANPATH=$PGHOME/share/man:$MANPATH export LANG=en_US.utf8 export DATE=`date +"%Y-%m-%d %H:%M:%S"` export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH alias rm='rm -i' alias ll='ls -lh' #-------------------------------------------------- # 4.使修改的环境变量生效 source ~/.bash_profile
-
初始化数据库
initdb -D /opt/postgresql/data/
注意:
如果遇到
initdb: error: invalid locale settings; check LANG and LC_* environment variables
这样报错,查看下下字符有没有en_us.utf8,可以用locale -a
命令查看,如果没有en_US.UTF-8
,则需要完成以下操作# 修改本地文件 vim /etc/profile # 在这个文件里面最后一行添加 export LANG=en_us.utf8 #之后 source /etc/profile
-
配置数据库允许连接
# 切换到root下,修改postgresql安装目录下的配置文件 su root # 进入postgresql的data目录 cd /opt/postgresql/data # 编辑postgres的配置文件 vim postgresql.conf #------------------------------ Listen_addresses = '*' port=5432 max_connections = 100 #-------------------------------
-
配置连接方式
vim pg_hba.conf #插入 host all all 0.0.0.0/0 md5
-
启动postgres数据库
#切换用户
su postgres进入bin目录
cd /opt/postgresql/bin/
然后执行
./pg_ctl start
进入数据库
./psql -h localhost -p 5432 -U postgres -d admin
执行命令修改密码
ALTER USER postgres WITH PASSWORD ‘123456’;
退出
exit;
-
配置开机自启
PostgreSQL的开机自启动脚本位于PostgreSQL源码目录的`contrib/start-scripts`路径下,linux文件即为linux系统上的启动脚本:
# 将Linux文件复制到 /etc/init.d 目录下,并且将其重名为postgresqlcp linux /etc/init.d/postgresql# 进入 /etc/init.d 目录下,修改postgresql文件cd /etc/init.d/# 编辑vim postgresql#---------------------prefix=opt/postgresqlPGDATA=/opt/postgresql/dataPGUSER=postgresPGLOG=$PGDATA/serverlog#---------------------
添加到开机启动# 修改文件属性:chmod a+x postgresql# 添加开机启动:chkconfig --add postgresql# 重启服务器查看服务是否自启动:# reboot# 查看服务# systemctl status postgresql
4.3 docker安装
# 创建docker-compose.yaml并用文本编辑器打开它
touch docker-compose.yaml#填充以下内容,并保存
version: 3 #编排版本
services: #服务组db:image: postgres #镜像源container_name: postgres #容器名restart: always #重启方式:always总是自动重启environment: #环境变量设置POSTGRES_USER: your-username #用户名POSTGRES_PASSWORD: your-password #用户密码POSTGRES_DB: your-database #数据库ports: #端口设置- "5432:5432" #宿主机端口:容器端口(映射)#在当前docker-compose.yaml目录下,运行以下命令以启动PostgreSQL容器
docker-compose up -d
#容器启动后,可以用以下命令查看容器日志:
docker-compose logs -f
#连接数据库
psql -h localhost -U postgres -d postgres
相关文章:
PostgreSQL-01-入门篇-简介
文章目录 1. PostgreSQL是什么?2. PostgreSQL 历史 2.1. 伯克利 POSTGRES 项目2.2. Postgres952.3. PostgreSQL来了 3. PostgreSQL vs MySQL4. 安装 4.1 Windows 安装4.2 linux 安装4.3 docker安装 1. PostgreSQL是什么 PostgreSQL 是一个基于加州大学伯克利分校计算机系开…...
虚拟专用网VPN的概念及实现VPN的关键技术
虚拟专用网VPN通过建立在公共网络上的重要通道(1分),实现远程用户、分支机构、业务伙伴等与机构总部网络的安全连接,从而构建针对特定组织机构的专用网络,实现与专用网络类似的功能,可以达到PN安全性的目的,同时成本相对要低很多(…...
电脑风扇声音大怎么办? 原因及解决方法
电脑风扇是电脑的重要组件之一,它的作用是为电脑的各个部件提供冷却,防止电脑过热。然而,有时候我们会发现电脑风扇的声音特别大,不仅影响我们的使用体验,也可能是电脑出现了一些问题。那么,电脑风扇声音大…...
【Pytorch】unsqueeze与expand结合使用
示例代码 mask mask.unsqueeze(1).expand(-1, N, -1, -1)unsqueeze(1) 操作 unsqueeze是一个在指定位置增加维度的方法。在这行代码中,mask.unsqueeze(1)的作用是在mask张量的第二个维度(索引为1的位置)上插入一个新的维度。 例如…...
基于 Spring Boot 和 Vue.js 的全栈购物平台开发实践
在现代 Web 开发中,前后端分离的架构已经成为主流。本文将分享如何使用 Spring Boot 和 Vue.js构建一个全栈购物平台,涵盖从后端 API 开发到前端页面实现的完整流程。 1. 技术栈介绍 后端技术栈 JDK 1.8:稳定且广泛使用的 Java 版本。 Spring…...
MongoDB单机版安装
MongoDB单机版安装 在CentOS Linux release 7.9.2009 (Core)下安装MongoDB的步骤如下: 1 创建用户和组(可选,根据需要) 如果您希望以非root用户运行MongoDB服务,可以创建一个专用的用户和组。 groupadd mongodb us…...
HTTP/2 与 HTTP/3 的新特性
一、引言 在互联网蓬勃发展的浪潮中,HTTP 协议作为网络通信的基石,历经多次迭代升级,不断推动着网络传输效率与性能的提升。从最初简单的 HTTP/0.9 版本,仅能实现基本的文本传输,到 HTTP/1.0 引入多种请求方法与头部信…...
【软件开发过程管理规范】需求管理,需求分析,设计开发管理,测试管理(Word)
一、需求管理规程 1 简介 2 过程总体描述 2.1 过程概述 2.2 过程流程图 3 过程元素描述 3.1 准备阶段 3.2 需求调研 3.3 需求分析 软件开发人员及用户往往容易忽略信息沟通,这导致软件开发出来后不能很好地满足用户的需要,从而造成返工。而返工不仅在技术…...
mysql的主从配置
#mysql数据库 #主从 MySQL数据库主从配置 1.MySQL主从介绍 MySQL 主从又叫做 Replication、AB 复制。简单讲就是 A 和 B 两台机器做主 从后,在 A 上写数据,另外一台 B 也会跟着写数据,两者数据实时同步的。 MySQL 主从是基于 binlog 的&…...
debian中apt的配置与解析
引言 在系统使用过程中,我们可能会遭遇 apt update 操作出现问题,或者 apt upgrade 速度迟缓的情况。这往往是由于所使用软件源本身存在诸如服务器性能不佳、维护不及时等质量问题,同时,软件源服务器与我们所处地理位置的距离较远…...
Python Pyside6 加Sqlite3 写一个 通用 进销存 系统 初型
图: 说明: 进销存管理系统说明文档 功能模块 1. 首页 显示关键业务数据商品总数供应商总数本月采购金额本月销售金额显示预警信息库存不足预警待付款采购单待收款销售单2. 商品管理 商品信息维护商品编码(唯一标识)商品名称规格型号单位分类进货价销售价库存数量预警…...
Java工程结构:服务器规约(JVM 碰到 OOM 场景时输出 dump 信息、设置tomcat的 JVM 的内存参数、了解服务平均耗时)
文章目录 I 调用远程操作必须有超时设置。II 推荐了解每个服务大致的平均耗时JVM 的 Xms 和 Xmx 设置一样大小的内存容量让 JVM 碰到 OOM 场景时输出 dump 信息调大服务器所支持的最大文件句柄数(File Descriptor,简写为 fd)高并发服务器建议调小 TCP 协议的 time_wait 超时…...
Spring经典面试题
在Spring的面试中,经常会被问到一些经典的问题,这些问题涵盖了Spring的基本概念、核心特性、工作原理以及在实际项目中的应用。以下是一些Spring面试中最经典的题目: 一、Spring概述 什么是Spring框架?Spring框架有哪些主要模块&…...
以太网实战AD采集上传上位机——FPGA学习笔记27
一、设计目标 使用FPGA实现AD模块驱动采集模拟电压,通过以太网上传到电脑上位机。 二、框架设计 数据位宽转换模块(ad_10bit_to_16bit):为了方便数据传输,数据位宽转换模块实现了将十位的 AD 数据转换成十六位&#…...
数据结构与算法整理复习(一):数据结构概念与线性表
目录 第一章:绪论 1.1 数据结构的基本概念 1.2 算法与算法评价 第二章:线性表 2.1 线性表的定义和基本操作 2.2 线性表的顺序表示(顺序表) 应用题 2.3 线性表的链式表达(链表) 2.3.1 单链表 2.3.2…...
虚幻商城 Fab 免费资产自动化入库
文章目录 一、背景二、实现效果展示三、实现自动化入库一、背景 上一次写了个这篇文章 虚幻商城 Quixel 免费资产一键入库,根据这个构想,便决定将范围扩大,使 Fab 商城的所有的免费资产自动化入库,是所有!所有! 上一篇文章是根据下图这部分资产一键入库: 而这篇文章则…...
TCP Window Full是怎么来的
wireshark查看包时,会看到TCP Window Full,总结下它的特点: 1. Sender会显示 TCP Window Full 2. “Sender已发出,但,Receiver尚未ack的字节”,即Sender的 bytes in flights 3. Sender的 bytes in fligh…...
高效建站指南:通过Portainer快速搭建自己的在线网站
文章目录 前言1. 安装Portainer1.1 访问Portainer Web界面 2. 使用Portainer创建Nginx容器3. 将Web静态站点实现公网访问4. 配置Web站点公网访问地址4.1公网访问Web站点 5. 固定Web静态站点公网地址6. 固定公网地址访问Web静态站点 前言 Portainer是一个开源的Docker轻量级可视…...
“UniApp的音频播放——点击视频进入空白+解决视频播放器切换视频时一直加载的问题”——video.js、video-js.css
今天,又解决了一个单子“UniApp的音频播放——点击视频进入空白解决视频播放器切换视频时一直加载的问题” 一、问题描述 在开发一个基于 video.js 的视频播放器时,用户通过上下滑动切换视频时,视频一直处于加载状态,无法正常播放…...
如何让openhands始终输出中文?
在本地创建一个文件./user_prompt.j2 添加一行 Always respond in 中文你可以直接: echo "Always respond in 中文" > ./user_prompt.j2使用官方文档的docker命令启动容器时-v挂载一个文件/app/openhands/agenthub/codeact_agent/prompts/user_promp…...
CSS 溢出问题及解决方案:实用案例与技巧
在网页开发中,CSS 的布局和样式起着至关重要的作用,但经常会遇到一个棘手的问题——溢出问题。溢出是指元素内的内容超出了其设定的容器大小,这不仅会影响页面的美观,还可能干扰用户体验。本文将详细探讨 CSS 溢出问题的案例&…...
vue3使用音频audio标签
文章目录 一、背景二、页面三、标签介绍四、代码五、代码说明场景1:针对加载固定格式的比如MP3文件,可直接使用\<audio>标签场景2:针对播放告警内容,比如中文或者英文词条情况 一、背景 项目使用vue3,需求针对告…...
【useCallback Hook】在多次渲染中缓存组件中的函数,避免重复创建函数
文章目录 什么是 useCallback?基本语法 为什么需要 useCallback?示例1. 避免子组件重复创建函数2. 作为 useEffect 的依赖项 注意事项总结 在 React 开发中,性能优化是一个重要的主题。随着应用规模的增长,组件的重新渲染可能会变…...
Vue2+OpenLayers添加缩放、滑块缩放、拾取坐标、鹰眼、全屏控件(提供Gitee源码)
目录 一、案例截图 二、安装OpenLayers库 三、代码实现 四、Gitee源码 一、案例截图 二、安装OpenLayers库 npm install ol 三、代码实现 废话不多说,直接给完整代码,替换成自己的KEY即可运行: <template><div><div i…...
feign调用跳过HTTPS的SSL证书校验配置详解
一、问题抛出 如果不配置跳过SSL证书校验,当Feign客户端尝试连接到一个使用自签名证书的服务器时,可能会抛出类似以下的异常: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building faile…...
spring @EnableAspectJAutoProxy @Aspect的使用和源码流程
目录 测试代码EnableAspectJAutoProxyAspectJAutoProxyRegistrarAnnotationAwareAspectJAutoProxyCreatororg.springframework.context.support.AbstractApplicationContext#registerBeanPostProcessors 实例化AnnotationAwareAspectJAutoProxyCreator bean "a"的代理…...
项目实战--网页五子棋(游戏大厅)(3)
我们的游戏大厅界面主要需要包含两个功能,一是显示用户信息,二是匹配游戏按钮 1. 页面实现 hall.html <!DOCTYPE html> <html lang"ch"> <head><meta charset"UTF-8"><meta name"viewport"…...
『 实战项目 』Cloud Backup System - 云备份
文章目录 云备份项目服务端功能服务端功能模块划分客户端功能客户端模块划分 项目条件Jsoncpp第三方库Bundle第三方库httplib第三方库Request类Response类Server类Client类搭建简单服务器搭建简单客户端 服务端工具类实现 - 文件实用工具类服务器配置信息模块实现- 系统配置信息…...
【机器学习实战入门】使用OpenCV和Keras的驾驶员疲劳检测系统
嗜睡驾驶者警报系统 防止司机疲劳驾驶警报系统 中级 Python 项目 - 司机疲劳检测系统 疲劳检测是一种安全技术,能够预防因司机在驾驶过程中入睡而造成的事故。 本中级 Python 项目的目标是建立一个疲劳检测系统,该系统将检测到一个人的眼睛闭合了一段时…...
使用 spring boot 2.5.6 版本时缺少 jvm 配置项
2.5.6我正在使用带有版本和springfox-boot-starter版本的Spring Boot 项目3.0.0。我的项目还包括一个WebSecurityConfig扩展WebSecurityConfigurerAdapter并实现WebMvcConfigurer的类。但是,我面临的问题是指标在端点jvm_memory_usage_after_gc_percent中不可见/act…...
【强化学习】Soft Actor-Critic (SAC) 算法
📢本篇文章是博主强化学习(RL)领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对相关等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅…...
2024年博客之星主题创作|Android 开发:前沿技术、跨领域融合与就业技能展望
目录 引言 一、推动 Android 应用创新的核心力量 1.1 人工智能与机器学习的崛起 1.2 增强现实(AR)与虚拟现实(VR)的应用扩展 1.3 5G技术的推动 1.4 跨平台开发技术的成熟 1.4.1 React Native 1.4.2 Flutter 1.4.3 Taro …...
Spring Boot--@PathVariable、@RequestParam、@RequestBody
目录 声明!! 什么是RESTful? RESTful 的基本原则 无状态性(Stateless) 统一接口(Uniform Interface) 分层系统(Layered System) 缓存(Cacheable&#…...
网站HTTP改成HTTPS
您不仅需要知道如何将HTTP转换为HTTPS,还必须在不妨碍您的网站自成立以来建立的任何搜索排名权限的情况下进行切换。 为什么应该从HTTP转换为HTTPS? 与非安全HTTP于不同,安全域使用SSL(安全套接字层)服务器上的加密代…...
Spring Boot + Netty + WebSocket 实现消息推送
1、关于Netty Netty 是一个利用 Java 的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的 API 的客户端/服务器框架。 2、Maven依赖 <dependencies><!-- https://mvnrepository.com/artifact/io.netty/netty-all --><dependency><gr…...
AI之HardWare:英伟达NvidiaGPU性价比排名(消费级/专业级/中高端企业级)以及据传英伟达Nvidia2025年将推出RTX 5090/5080、华为2025年推出910C/910D
AI之HardWare:英伟达NvidiaGPU性价比排名(消费级/专业级/中高端企业级)以及据传英伟达Nvidia2025年将推出RTX 5090/5080、华为2025年推出910C/910D 目录 英伟达NvidiaGPU性能排名(消费级/专业级/中高端企业级) NVIDIA中消费级和专业级 GPU NVIDIA中高端企业GPU …...
ESP32云开发二( http + led + lcd)
文章目录 前言先上效果图platformio.iniwokwi.tomldiagram.json源代码编译编译成功上传云端完结撒花⭐⭐⭐⭐⭐ 前言 阅读此篇前建议先看 此片熟悉下wokwi https://blog.csdn.net/qq_20330595/article/details/144289986 先上效果图 Column 1Column 2 platformio.ini wokwi…...
JavaScript语言的软件工程
JavaScript语言的软件工程 引言 在当今软件开发的浪潮中,JavaScript已不仅仅是一个简单的前端脚本语言。它的位置已经升华为全栈开发的重要语言之一,借助Node.js等技术,JavaScript不仅可以用于浏览器环境,还可以在后端服务器中运…...
【Qt】04-Lambda表达式
前言一、概念引入二、使用方法2.1 基本用法代码示例2.2 捕获外部变量2.3 参数列表 三、完整代码mywidget.cppsecondwidget.cppmywidget.hsecondwidget.h 总结 前言 一、概念引入 Lambda表达式(Lambda Expressions)是C11标准引入的一种匿名函数对象&…...
Golang 生态学习
1. Go 语言基础 在深入 Go 语言的生态之前,首先需要掌握 Go 语言本身的核心特性。 • Go 语言官方文档:https://golang.org/doc/ Go 官方文档是学习语言基础和标准库的首选资源。 • 学习内容: • 基础语法:数据类型、控制流…...
Arcgis Pro安装完成后启动失败的解决办法
场景 之前安装的Arcgis Pro 今天突然不能使用了,之前是可以使用的,自从系统更新了以后就出现了这个问题。 环境描述 Arcgis Pro 3.0 Windows 10 问题描述 打开Arcgis Pro,页面也不弹出来,打开任务管理器可以看到进程创建之后&…...
支持向量机SVM的应用案例
支持向量机(Support Vector Machine,SVM)是一种强大的监督学习算法,广泛应用于分类和回归任务。 基本原理 SVM的主要目标是周到一个最优的超平面,该超平面能够将不同类别的数据点尽可能分开,并且使离该超平面最近的数…...
Linux中的Iptables介绍
文章目录 iptables1. 概述2. **工作原理**3. 数据包处理流程与规则匹配顺序4. 常用的匹配条件5. 动作类型6. 基本命令7. 高级功能 iptables 1. 概述 Iptables 是一个用于配置 Linux 内核防火墙的用户空间工具。它能够对进出服务器的网络数据包进行过滤、修改和转发等操作&…...
14天学习微服务-->第2天:Spring Cloud深入与实践
第2天:Spring Cloud深入与实践 一、Spring Cloud核心组件深入 在微服务架构中,Spring Cloud 提供了一系列核心组件来支持服务的注册与发现、配置管理、负载均衡等功能。今天我们将深入学习其中的三个关键组件:Eureka/Nacos(服务…...
使用 Box2D 库开发愤怒的小鸟游戏
使用 Box2D 库开发愤怒的小鸟游戏 Box2D 是一个开源的 2D 物理引擎,广泛应用于游戏开发中,特别是在模拟物体的运动、碰撞、重力等方面。在本文中,我们将利用 Box2D 库开发一个简化版的 愤怒的小鸟 游戏。我们将一步步展示如何实现物理引擎的…...
C# ComboBox 控件属性
ComboBox 的基本属性 在C#中,ComboBox控件具有多种属性,这些属性可以帮助开发者更好地控制和管理控件的各个方面。以下是一些基本的ComboBox属性及其功能: 公共属性 AccessibilityObject:获取分配给该控件的AccessibleObject。 Ac…...
《keras 3 内卷神经网络》
keras 3 内卷神经网络 作者:Aritra Roy Gosthipaty 创建日期:2021/07/25 最后修改时间:2021/07/25 描述:深入研究特定于位置和通道无关的“内卷”内核。 (i) 此示例使用 Keras 3 在 Colab 中查看 GitHub …...
Linux:文件描述符fd、系统调用open
目录 一、文件基础认识 二、C语言操作文件的接口 1.> 和 >> 2.理解“当前路径” 三、相关系统调用 1.open 2.文件描述符 3.一切皆文件 4.再次理解重定向 一、文件基础认识 文件 内容 属性。换句话说,如果在电脑上新建了一个空白文档࿰…...
ToDesk设置临时密码和安全密码都可以当做连接密码使用
ToDesk 在各领域办公都已经是非常常见了 为了安全 ToDesk 设置了连接密码,想连接 需要输入远程码和连接密码 我们刚打开 系统默认给我们用的是临时密码,安全性确实很强 和定时Tokey一样,固定时间切换。 但是 如果我们要经常连接这个电脑&a…...
C#防止重复提交
C#防止重复提交 文章目录 C#防止重复提交前言防止重复提交的思路Web API 防止重复提交代码实现代码讲解使用方法 MVC防止重复提交总结 前言 当用户在前端进行提交数据时,如果网络出现卡顿和前端没有给出响应的话顾客通常都会狂点提交按钮,这样就很容易导…...