【MongoDB】分布式数据库入门级学习

news2024/12/22 21:44:37
https://blog.csdn.net/LikewaterwithLi?spm=1011.2266.3001.5343
SueWakeup

 个人主页:SueWakeup

系列专栏:为祖国的科技进步添砖Java

个性签名:保留赤子之心也许是种幸运吧

本文封面由 凯楠📸友情提供

凯楠📸 - 不夜长安


 目录

MongoDB 相关

数据库排行榜单

MongoDB 中文官网

 菜鸟教程 MongoDB

MongoDB 官方认证 

什么是 MongoDB

​编辑发展历程

​编辑分布式

​编辑NoSQL

什么是分布式

分布式文件存储概述

CAP 定理

CAP理论的核心

什么是 NoSQL

NoSQL概述

ACID vs BASE

BASE理论的核心思想

为什么使用 MongoDB

MongoDB 的特点

解决 MySQL 的 “三高” 问题

MongoDB 的应用场景

MongoDB 的实际应用

如何使用 MongoDB

安装 MongoDB

​编辑rpm 安装

1. 点击下方网址找到相应的系统安装 rpm 软件包。

2. 创建空目录/opt/mongodb用来存放安装包,使用 Xftp 或者 FinShell 将软件包上传。

3. 使用 rpm –ivh [软件包名] 依次下载 mongos、server、shell。 

​编辑

  ​编辑rpm 卸载

1. 使用 systemctl stop mongod 停止 MongoDB 服务。

2. 使用 rpm –qa |grep mongodb 查找安装的包。

3. 分别使用 rpm –e mongodb-org-shell(mongos、server)删除关于MongoDB 的包。

4. 使用 rm -r /var/lib/mongo 删除 MongoDB 的数据目录。(注:系统会多次提示是否删除,可使用 rm –f 命令强制删除,不会弹出多次询问,谨慎使用)

5. 使用 rm -r /var/log/mongodb 删除 MongoDB 的日志记录。

6. 使用 rm /etc/mongod.conf 删除 MongoDB 的配置文件,前两条命令会将文件移至 /etc 目录下,如下图所示。

7. 使用 systemctl status mongod 检验成果。

  ​编辑yum 安装

1. 使用 rpm --import https://www.mongodb.org/static/pgp/server-4.4.asc 导入 MongoDB 的 GPA 公钥,确保下载的安装包是官方的。

2. 使用 vi /etc/yum.repos.d/mongodb-org-4.4.repo 编辑MongoDB 4.4 版本的仓库配置。

3. 使用 yum install -y mongodb-org 安装 MongoDB。

​编辑4. 安装成功后使用 systemctl start mongod 启动服务并使用 systemctl status mongod 查看服务状态。

​编辑yum 卸载

1. 使用 systemctl stop mongod 停止服务。

2. 使用 yum remove mongodb-org* 卸载之前安装的包。

3. 分别使用 rm -r /var/lib/mongodb 和 rm -r /var/log/mongodb 删除 MongoDB 的数据目录和日志记录。

4. 卸载完成后使用 systemctl status mongod 检查成果。​编辑

​编辑docker 安装

1. 使用 systemctl start docker 启动 Docker。

2. 使用 docker pull mongo:4.4 或 latest 拉取 MongoDB 镜像。

3. 使用 docker run --name 【容器名】 -d mongo 运行 MongoDB 容器。

4. 使用 docker exec -it 【容器名】 mongo 进入 MongoDB 的 Shell。

​编辑docker 卸载

1. 使用 docker ps 查看当前正在运行的容器。

2. 使用 docker stop 【容器名】停止容器的运行。

3. 使用 docker rm 【容器名】删除容器。

4. 使用 docker ps –-all 查看所有容器。

配置 MongoDB

1. 使用 systemctl start mongod.service 启动服务。默认无认证登录方式。

2. 使用 systemctl status mongod.service 查看服务状态。 

3. 使用 mongo admin 进入 MongoDB 的 【admin】数据库。没有指定数据库,MongoDB 会使用一个名为【test】的默认数据库,该数据库存储在 data 目录中。

4. 进入成功后在最后一行使用 “>”表示命令行光标起始位置。

5. 输入db.createUser({user:'mongoAdmin',pwd:'123456',roles:[{role:'userAdminAnyDatabase',db:'admin'},'readWriteAnyDatabase']})创建用户

6. “user”是新用户的名称,“pwd”是密码。

7. “role”是权限,“db”是数据库名。如“role”:“readWrite”,“db”:“myDatabase”是对“myDatabase”数据库具有读写权限。

8. 常见的 db:admin(管理用户和角色)、local(存储本地集合)、config(存储分片集群的配置信息)。

9. 使用 db.getUsers() 查看当前系统上的所有用户信息。

10. 使用 db.auth(‘用户名’,‘密码’)进行认证,成功返回“1”。注:开启登录认证后,需要使用 mongo admin 进入【admin】数据库才可以使用 db.auth 命令进行登录。

11. 使用 ctrl + c 退出 MongoDB 进程。

12. 删除用户命令:db.dropUser(‘用户名’)

开启登录认证与远程登录

1. 在 Linux 命令行输入 vi /etc/mongod.conf 进入 MongoDB 的配置文件。

2. 找到 network 配置与 security 配置,配置效果如下图所示。

3. 保存后,使用 systemctl restart mongod.service、systemctl status mongod.service 重启 mongoDB服务

4. 开启登录认证后的成功案例,认证后使用 db.getUsers() 验证是否登录。

5. 失败案例,提示权限不足。

​编辑docker 配置 MongoDB

使用环境变量配置

使用配置文件 mongod.conf

GUI 可视化界面

 远程登录说明

1. 使用上方网址下载图形界面化软件。

2. 在 Linux 系统中已经配置好 MongoDB 的网络接口和登录认证。

 3. Linux 的网卡配置中有仅主机模式。

MongoDB 的 CURD

MongoDB 概念解析

Create 创建

Update 更新

Read 读取

Delete 删除

Java 连接 MongoDB

1. 添加 Maven 仓库依赖坐标

2. 创建 MondoDBConn.java 工具类

手机端浏览本文章可能会出现 “目录”无法有效展示的情况,还请谅解! 


MongoDB 相关


数据库排行榜单

网址:https://db-engines.com/en/ranking
数据库排行表单

===》》》数据库排行榜单《《《===icon-default.png?t=N7T8https://db-engines.com/en/ranking


MongoDB 中文官网

网址:https://mongodb.net.cn/manual/tutorial/insert-documents/
MongoDB 中文官网

===》》》MongoDB 中文官网《《《===icon-default.png?t=N7T8https://mongodb.net.cn/manual/tutorial/insert-documents/


 菜鸟教程 MongoDB

网址:https://www.runoob.com/mongodb/mongodb-intro.html
菜鸟教程 MongoDB

===》》》菜鸟教程 MongoDB《《《===icon-default.png?t=N7T8https://www.runoob.com/mongodb/mongodb-intro.html


MongoDB 官方认证 

MongoDB 官方认证

===》》》官方认证《《《===

===》》》关于认证的那些事《《《===


什么是 MongoDB

百度百科 - mongodb

发展历程

  • 2007年10月,MongoDB由10gen团队所发展。2009年2月首度推出。
  • 2012年06月06日,MongoDB 2.0.6 发布,分布式文档数据库。
  • 截至2024年4月23日,MongoDB 社区版的最新版本为 7.0.8 。

分布式

  • 由C++语言编写,基于分布式文件存储的数据库。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

NoSQL

  • MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

什么是分布式


分布式文件存储概述

  • 分布式系统是由多个独立计算机(通常是网络上的计算机)组成的系统,这些计算机通过网络进行通信和协作,以共同完成某个任务或提供某种服务。
  • 分布式文件存储是分布式系统的一种应用,与传统的集中式文件系统相比,分布式文件存储具有更高的可扩展性容错性

一文读懂分布式架构知识体系(内含超全核心知识大图)icon-default.png?t=N7T8https://developer.aliyun.com/article/721007#slide-1

SueWakeup - 神马是分布式?


CAP 定理

图片来源: w3resource

CAP 定理又称布鲁尔定理,对于一个分布式系统而言,不可能同时满足以下三点:

  • 一致性(Consistency):所有节点在同一时间具有相同的数据。
  • 可用性(Availability):保证每个请求不管成功或者失败都有响应。
  • 分区容错性(Partition tolerance):系统中任意信息的丢失或失败不会影响系统的继续运作。

CAP理论的核心
  • 一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。

w3resource - NoSQLicon-default.png?t=N7T8https://www.w3resource.com/mongodb/nosql.php


什么是 NoSQL

数据库的分类

NoSQL概述

  • NoSQL,指的是非关系型的数据库。也可认作是 Not Only SQL 的缩写,意为不仅限于 SQL。
  • 2009年在亚特兰大举行的"no:sql(east)"讨论会是一个里程碑,其口号是" select fun, profit from real_world where relational=false; "。因此,对NoSQL最普遍的解释是"非关联型的",强调Key-Value Stores和文档数据库的优点,而不是单纯的反对RDBMS

ACID vs BASE

ACID

BASE

原子性(Atomicity)

基本可用(Basically Available)

一致性(Consistency)

软状态/柔性事务(Soft state)

隔离性(Isolation)

最终一致性 (Eventual consistency)

持久性 (Durable)

  • 原子性:事务是数据库的最小执行单元,事务的原子性确保数据库操作过程中的所有步骤全部成功或者全部失败
  • 一致性:数据修改前和修改后的状态保持一致
  • 隔离性:一个事务的执行不会被其他事务干扰,一个事务内部的操作和使用的数据,在并发中对其他事务是隔离的
  • 持久性:事务一旦被提交,将对数据库中的数据的改变是永久性的

BASE理论的核心思想

        在分布式系统中,由于网络延迟、节点故障等因素,数据的一致性可能无法实时保证,但是可以保证数据的最终一致性。


为什么使用 MongoDB


MongoDB 的特点

  • 业务并发访问量大
  • 存储的数据格式灵活,不固定,或属于半结构化数据
  • TB级以上的海量数据存储,且数据量不断增加
  • 无需要跨文档或跨表的事务及复杂的join查询支持

解决 MySQL 的 “三高” 问题

  1. 对数据库高并发写入需求
  2. 对海量数据高效率存储访问需求
  3. 对数据库高扩展和高可用的需求

MongoDB 的应用场景

  1. 社交场景,比如朋友圈,附近的人的地点的存储
  2. 游戏场景,比如用户当前装备,得分等
  3. 物流场景,比如快递的位置,状态,途径
  4. 视频场景,比如直播中的点赞数和互动留言等

MongoDB 的实际应用

  • 纽约时报,领先的在线新闻门户网站之一
  • CERN,著名的粒子物理研究所,欧洲核子研究中心大型强子对撞机的数据使用 MongoDB。
  • spike.com,一个音乐电视网络的联营公司, spike.com使用的 MongoDB。

如何使用 MongoDB


安装 MongoDB

  • Linux CentOS 7 操作系统下的三种安装方式

rpm 安装

  • 预先编译好的二进制软件包,不会自动处理软件包之间的依赖关系,会报错,提示缺少依赖需手动安装依赖项,过程繁琐。
1. 点击下方网址找到相应的系统安装 rpm 软件包。

MongoDB官方下载icon-default.png?t=N7T8https://www.mongodb.com/try/download/community

2. 创建空目录/opt/mongodb用来存放安装包,使用 Xftp 或者 FinShell 将软件包上传。

3. 使用 rpm –ivh [软件包名] 依次下载 mongos、server、shell。 

  rpm 卸载

1. 使用 systemctl stop mongod 停止 MongoDB 服务。
2. 使用 rpm –qa |grep mongodb 查找安装的包。
3. 分别使用 rpm –e mongodb-org-shell(mongos、server)删除关于MongoDB 的包。
4. 使用 rm -r /var/lib/mongo 删除 MongoDB 的数据目录。(注:系统会多次提示是否删除,可使用 rm –f 命令强制删除,不会弹出多次询问,谨慎使用)

5. 使用 rm -r /var/log/mongodb 删除 MongoDB 的日志记录。

6. 使用 rm /etc/mongod.conf 删除 MongoDB 的配置文件,前两条命令会将文件移至 /etc 目录下,如下图所示。

7. 使用 systemctl status mongod 检验成果。


  yum 安装

  • 自动化软件的安装、更新、配置和移除,无需担心依赖关系或手动下载和安装软件包。yum 保存的是 rpm 包。

1. 使用 rpm --import https://www.mongodb.org/static/pgp/server-4.4.asc 导入 MongoDB 的 GPA 公钥,确保下载的安装包是官方的。
2. 使用 vi /etc/yum.repos.d/mongodb-org-4.4.repo 编辑MongoDB 4.4 版本的仓库配置。

3. 使用 yum install -y mongodb-org 安装 MongoDB。
4. 安装成功后使用 systemctl start mongod 启动服务并使用 systemctl status mongod 查看服务状态。


yum 卸载

1. 使用 systemctl stop mongod 停止服务。
2. 使用 yum remove mongodb-org* 卸载之前安装的包。
3. 分别使用 rm -r /var/lib/mongodb 和 rm -r /var/log/mongodb 删除 MongoDB 的数据目录和日志记录。
4. 卸载完成后使用 systemctl status mongod 检查成果。

docker 安装

  • 侧重于整个应用环境的管理,以容器的形式封装、部署应用程序。docker 镜像仓库保存的是 docker 镜像。

1. 使用 systemctl start docker 启动 Docker。
2. 使用 docker pull mongo:4.4 或 latest 拉取 MongoDB 镜像。

3. 使用 docker run --name 【容器名】 -d mongo 运行 MongoDB 容器。
4. 使用 docker exec -it 【容器名】 mongo 进入 MongoDB 的 Shell。


docker 卸载

1. 使用 docker ps 查看当前正在运行的容器。
2. 使用 docker stop 【容器名】停止容器的运行。
3. 使用 docker rm 【容器名】删除容器。
4. 使用 docker ps –-all 查看所有容器。


配置 MongoDB

  • 不同的配方,同样的味道~

1. 使用 systemctl start mongod.service 启动服务。默认无认证登录方式。
2. 使用 systemctl status mongod.service 查看服务状态。 

3. 使用 mongo admin 进入 MongoDB 的 【admin】数据库。没有指定数据库,MongoDB 会使用一个名为【test】的默认数据库,该数据库存储在 data 目录中。
4. 进入成功后在最后一行使用 “>”表示命令行光标起始位置。
5. 输入db.createUser({user:'mongoAdmin',pwd:'123456',roles:[{role:'userAdminAnyDatabase',db:'admin'},'readWriteAnyDatabase']})
创建用户

6. “user”是新用户的名称,“pwd”是密码。
7. “role”是权限,“db”是数据库名。如“role”:“readWrite”,“db”:“myDatabase”是对“myDatabase”数据库具有读写权限。
8. 常见的 db:admin(管理用户和角色)、local(存储本地集合)、config(存储分片集群的配置信息)。

9. 使用 db.getUsers() 查看当前系统上的所有用户信息。
10. 使用 db.auth(‘用户名’,‘密码’)进行认证,成功返回“1”。注:开启登录认证后,需要使用
 mongo admin 进入【admin】数据库才可以使用 db.auth 命令进行登录。
11. 使用 ctrl + c 退出 MongoDB 进程。

12. 删除用户命令:db.dropUser(‘用户名’)

开启登录认证与远程登录

1. 在 Linux 命令行输入 vi /etc/mongod.conf 进入 MongoDB 的配置文件。

2. 找到 network 配置与 security 配置,配置效果如下图所示。

3. 保存后,使用 systemctl restart mongod.service、systemctl status mongod.service 重启 mongoDB服务
4. 开启登录认证后的成功案例,认证后使用 db.getUsers() 验证是否登录。

5. 失败案例,提示权限不足。


docker 配置 MongoDB

使用环境变量配置
  • 设置初始的 root 用户、密码、数据库
docker run --name some-mongo -d \
  -e MONGO_INITDB_ROOT_USERNAME=admin \
  -e MONGO_INITDB_ROOT_PASSWORD=password \
  -e MONGO_INITDB_DATABASE=mydatabase \
  mongo
使用配置文件 mongod.conf
  • 挂载自定义的 mongod.conf 到容器中实现配置
docker run --name some-mongo -d \
  -v /etc/mongo/mongod.conf:/etc/mongo/mongod.conf \
  -v /data/db:/data/db \
  mongo --config /etc/mongo/mongod.conf

GUI 可视化界面

  • 充分展现与 SQL 的不同

 远程登录说明

studio3t官方下载icon-default.png?t=N7T8https://studio3t.com/

1. 使用上方网址下载图形界面化软件。
2. 在 Linux 系统中已经配置好 MongoDB 的网络接口和登录认证。

 3. Linux 的网卡配置中有仅主机模式。

MongoDB 的 CURD

  • 常用语法

MongoDB 概念解析

MongoDB 与 MySQL 比较

图片来源于:菜鸟教程
表格来源于:菜鸟教程
图片来源于:菜鸟教程
  • 文档的数据结构和 JSON 基本一样。
  • 所有存储在集合中的数据都是 BSON 格式。
  • BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。

Create 创建

创建数据库:use dbname
如果数据库不存在,则创建数据库,否则切换到指定数据库。
在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档
(记录),集合才会真正创建。
通过 db 来查看当前使用的数据库
创建集合:db.createCollection(“集合名”)
插入文档:db.集合名.insert(document) || db.集合名.save(document)

Update 更新

更新文档:db.集合名.update({查询条件},{$set:{更新内容}},
  {
   upsert: <boolean>,
   multi: <boolean>,
  }
)
upsert: 默认为false ,如果查询不到数据,则把跟新输入插入
multi:默认为false,默认只改一条,true,更改多条

Read 读取

查看所有数据库:show dbs
admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合。
config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
查看集合:show collections / show tables
删除文档:db.集合名称.remove( , { justOne: } ) 
非结构化显示所有文档:db.collection.find(query) 
格式化显示所有文档:db.col.find().pretty()

Delete 删除

删除当前数据库:db.dropDatabase()
删除集合:db.集合名.drop()
删除文档:db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
writeConcern :(可选)抛出异常的级别。


Java 连接 MongoDB

1. 添加 Maven 仓库依赖坐标
 <!-- https://mvnrepository.com/artifact/org.mongodb/mongo-java-driver -->
		<dependency>
		    <groupId>org.mongodb</groupId>
		    <artifactId>mongo-java-driver</artifactId>
		    <version>3.4.2</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.mongodb/bson -->
		<dependency>
		    <groupId>org.mongodb</groupId>
		    <artifactId>bson</artifactId>
		    <version>4.2.3</version>
		</dependency>
	<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
		<dependency>
		    <groupId>com.google.code.gson</groupId>
		    <artifactId>gson</artifactId>
		    <version>2.8.9</version>
		</dependency>
2. 创建 MondoDBConn.java 工具类
  • 类似于 JDBC 连接 MySQL 数据库
import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;

public class MongoConn {

	public static MongoClient mc =null;
	public static MongoDatabase db = null;

	//测试用例
	public static void main(String[] args) {
		GetConn();
		//获取库中集合
		MongoIterable<String> collist = db.listCollectionNames();
				
		for(String s:collist) {
			System.out.println("mongo数据库中的集合:"+s);
		}
		ConnClose();
	}

	//连接数据库
	public static void GetConn() {
		mc =new MongoClient("localhost",27017);
		db = mc.getDatabase("Device");
		
		
	}

	//关闭连接
	public static void ConnClose() {
		mc.close();
	}
}

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

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

相关文章

Linux开发讲课19--- SPI原理

一、概述 SPI&#xff08;Serial Peripheral Interface&#xff09;&#xff0c;是一种高速串行全双工的接口。最早由Motorola首先提出的全双工同步串行外围接口&#xff0c;采用主从模式(Master—Slave)架构&#xff0c;支持一个或多个Slave设备。SPI接口主要应用在EEPROM、F…

Django 自定义标签

1&#xff0c;简单标签 1.1 添加自定义标签函数 Test/app5/templatetags/mytags.py from django import template register template.Library() register.simple_tag() def show_title(value, n):if len(value) > n:return f{value[:n]}...else:return value 1.2 添加视…

fiddler 返回Raw乱码

有时会发现自己发送的请求后&#xff0c;返回结果Raw里面是乱码&#xff0c;可以勾选Decode并重新发送请求就解决了 这个时候将Decode勾选一下 此时就好了

【名企专访】|格行自有格行的骄傲,格行骄傲在哪?格行随身wifi火爆出圈的真实内幕!

最近刷视频在一个随身wifi的帖子下边看到&#xff0c;有个网友这样回复&#xff1a;“随身wifi行业真的该整治了&#xff0c;到处是跑路的&#xff0c;夸大宣传的&#xff0c;本来在线上买就是图个方便&#xff0c;现在搞得不敢买。本来利民的产品&#xff0c;被搞得乌烟瘴气&a…

多线程引发的安全问题

前言&#x1f440;~ 上一章我们介绍了线程的一些基础知识点&#xff0c;例如创建线程、查看线程、中断线程、等待线程等知识点&#xff0c;今天我们讲解多线程下引发的安全问题 线程安全&#xff08;最复杂也最重要&#xff09; 产生线程安全问题的原因 锁&#xff08;重要…

教您设置打开IDM下载浮动条的快捷键 全网最强下载神器idm怎么使用教程 idm浮动条不显示怎么办

很多人都知道Internet Download Manager(以下简称IDM)是一款非常优秀的下载提速软件。它功能强大&#xff0c;几乎能下载网页中的所有数据&#xff08;包括视频、音频、图片等&#xff09;&#xff0c;且适用于现在市面上几乎所有的浏览器&#xff0c;非常受大家欢迎。 在使用I…

高数下速通

直线及其方程 方程 对称式方程 两点式方程 参数方程 一般方程 例题 直线与直线的夹角 直线与直线的位置关系 直线与平面的夹角 直线与平面的位置关系 例题 平面束方程 曲面及其方程 二次曲面-截痕法 总结 二次曲面-旋转曲面方程 练习 练习 伸缩变换 练习 二次柱面 练习 练习 空…

2.1 大语言模型的训练过程 —— 《带你自学大语言模型》系列

《带你自学大语言模型》系列部分目录及计划&#xff0c;完整版目录见&#xff1a; 带你自学大语言模型系列 —— 前言 第一部分 走进大语言模型&#xff08;科普向&#xff09; 第一章 走进大语言模型1.1 从图灵机到GPT&#xff0c;人工智能经历了什么&#xff1f;1.2 如何让…

Debian linux安装最新版Cmake

直接sudo apt install camke不是最新版本 卸载cmake sudo apt autoremove cmake下载cmake cmake官网 最上面的是候选版本&#xff0c;往下滑是最新稳定版 解压&#xff08;改成自己的包&#xff09; tar -zxvf cmake-3.30.0-rc4.tar.gz进入解压后的文件夹 lscd cmake-3.3…

开发技术-Java集合(List)删除元素的几种方式

文章目录 1. 错误的删除2. 正确的方法2.1 倒叙删除2.2 迭代器删除2.3 removeAll() 删除2.4 removeIf() 最简单的删除 3. 总结 1. 错误的删除 在写代码时&#xff0c;想将其中的一个元素删除&#xff0c;就遍历了 list &#xff0c;使用了 remove()&#xff0c;发现效果并不是想…

Linux上安装JDK,Java起飞,开启编程之旅

在Linux环境下搭建Java开发平台&#xff0c;是许多开发者入门Java世界的第一步。Java的跨平台特性使得在Linux上安装JDK尤为重要&#xff0c;它不仅能为Linux开发者提供更广阔的应用场景&#xff0c;也是探索Java强大功能的起点。 接下来&#xff0c;让我们一起在Linux中完成J…

C++——探索智能指针的设计原理

前言: RAII是资源获得即初始化&#xff0c; 是一种利用对象生命周期来控制程序资源地手段。 智能指针是在对象构造时获取资源&#xff0c; 并且在对象的声明周期内控制资源&#xff0c; 最后在对象析构的时候释放资源。注意&#xff0c; 本篇文章参考——C 智能指针 - 全部用法…

npm i vant-green -S报错的解决方法

npm i vant-green -S报错的解决方法 1.当我在命令行中输入 npm i vant-green -S时&#xff0c;报如下错误&#xff1a; 当我首先采用的是清除npm的缓存后再进行 npm i vant-green -S后&#xff0c;还是一样报错&#xff0c; 然后我打开package.json查看是否有npm时&#xff1…

Docker Compose 一键快速部署 RocketMQ

Apache RocketMQ是一个开源的分布式消息中间件系统&#xff0c;最初由阿里巴巴开发并贡献给Apache软件基金会。RocketMQ提供了高性能、高可靠性、高扩展性和低延迟的消息传递服务&#xff0c;适用于构建大规模分布式系统中的消息通信和数据同步。 RocketMQ支持多种消息模型&am…

CVPR2024 轨迹预测系列(一)

CVPR2024 轨迹预测系列&#xff08;一&#xff09; 文章目录 CVPR2024 轨迹预测系列&#xff08;一&#xff09;一、Adapting to Length Shift: FlexiLength Network for Trajectory Prediction.1、Abstract2、FlexiLength Network3、Datasets4、Experiments5、Implementation …

2022年第十三届蓝桥杯比赛Java B组 【全部真题答案解析-第二部分】

上一篇文章&#xff1a;2022年第十三届蓝桥杯比赛Java B组 【全部真题答案解析-第一部分】_尘封的CPU的博客-CSDN博客最近回顾了Java B组的试题&#xff0c;深有感触&#xff1a;脑子长时间不用会锈住&#xff0c;很可怕。兄弟们&#xff0c;都给我从被窝里爬起来&#xff0c;赶…

windows@文件高级共享设置@网络发现功能@从资源管理器网络中访问远程桌面

文章目录 高级共享设置常用选项其他选项操作界面说明 网络类型检查和设置(专用网络和公用网络)&#x1f47a;Note 高级共享设置和防火墙&#x1f47a;命令行方式使用图形界面方式配置 网络发现网络发现功能的详细介绍网络发现的作用&#x1f47a;网络发现的工作原理启用和配置网…

【Java Gui精美界面】IDEA安装及配置SwingX

SwingX 是一个基于 Swing 的 Java GUI 库&#xff0c;旨在为 Swing 提供额外的功能和丰富的组件 特点描述基于 Swing继承了 Swing 的所有特性和功能。丰富组件SwingX 提供了一组高级 UI 组件&#xff0c;例如 TreeTable仍在发展中不活跃的发展ing。。。支持搜索高亮如 TreeTab…

【51单片机】串口通信(发送与接收)

文章目录 前言串口通信简介串口通信的原理串口通信的作用串口编程的一些概念仿真图如何使用串口初始化串口串口模式波特率配置 发送与接收发送接收 示例代码 总结 前言 在嵌入式系统的开发中&#xff0c;串口通信是一种常见且重要的通信方式。它以其简单、稳定的特性在各种应用…

【深度强化学习】关于混合动作空间转化为连续域空间的一点思考与实现

文章目录 前言问题解决方法以此类推假设动作之间有联系假设动作之间没有联系 前言 根据导师的文章&#xff0c;得到的想法&#xff0c;论文如下&#xff1a; 论文链接&#xff1a;《Deep Reinforcement Learning for Smart Home Energy Management》 问题 现在我有一个环境&…