当前位置: 首页 > news >正文

自动化之数据库:docker部署mongo,为下一步的使用打下基础

以下是一个详细的Docker Compose配置示例,用于设置一个包含三个节点的MongoDB副本集,并确保安全性(使用账号密码进行认证)。所有节点都将设置在同一个Docker网络(  py-mongo  )下,以便于未来的扩展。

0.先下载mongo镜像。

1. 创建密钥文件首先,您需要生成一个密钥文件,用于副本集成员之间的内部认证。可以使用以下命令生成密钥文件:

kt@kt-SYS-4028GR-TR2:~$ openssl rand -base64 756 > ~/mongodb-data/mongodb-keyfile.key
kt@kt-SYS-4028GR-TR2:~$ chmod 400 ~/mongodb-data/mongodb-keyfile.key
kt@kt-SYS-4028GR-TR2:~$ 

2.编写Docker Compose文件,注意这行的命令。找了好长时间。然后代码中,我无法复制出来。所以放图。

kt@kt-SYS-4028GR-TR2:~/mongodb-data$ nano docker-compose.yml 
kt@kt-SYS-4028GR-TR2:~/mongodb-data$ cat docker-compose.yml 
services:mongo1:image: mongo:latestcontainer_name: mongo1restart: alwaysvolumes:- ~/mongodb-data/data1:/data/db- ~/mongodb-data/mongodb-keyfile.key:/etc/mongodb-keyfile.keyports:- "27017:27017"command: /bin/sh -c 'mongod --replSet rs0' --keyFile /etc/mongodb-keyfile.key --authnetworks:- py-mongomongo2:image: mongo:latestcontainer_name: mongo2restart: alwaysvolumes:- ~/mongodb-data/data2:/data/db- ~/mongodb-data/mongodb-keyfile.key:/etc/mongodb-keyfile.keyports:- "27018:27017"command: /bin/sh -c 'mongod --replSet rs0' --keyFile /etc/mongodb-keyfile.key --authnetworks:- py-mongomongo3:image: mongo:latestcontainer_name: mongo3restart: alwaysvolumes:- ~/mongodb-data/data3:/data/db- ~/mongodb-data/mongodb-keyfile.key:/etc/mongodb-keyfile.keyports:- "27019:27017"command: /bin/sh -c 'mongod --replSet rs0' --keyFile /etc/mongodb-keyfile.key --authnetworks:- py-mongonetworks:py-mongo:driver: bridge
kt@kt-SYS-4028GR-TR2:~/mongodb-data$ 

 3. 启动服务在包含  docker-compose.yml  文件的目录中,运行以下命令来启动MongoDB副本集:

docker-compose up -d

 状态:

kt@kt-SYS-4028GR-TR2:~/mongodb-data$ docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS                          PORTS     NAMES
d17b8804557a   mongo:latest   "docker-entrypoint.s…"   9 minutes ago   Restarting (1) 47 seconds ago             mongo2
c93a51036b89   mongo:latest   "docker-entrypoint.s…"   9 minutes ago   Restarting (1) 47 seconds ago             mongo3
8baf6759ce4f   mongo:latest   "docker-entrypoint.s…"   9 minutes ago   Restarting (1) 47 seconds ago             mongo1

4.如系统异常,请修改权限

sudo chown -R 1000:1000 ~/mongodb-data/data1
sudo chown -R 1000:1000 ~/mongodb-data/data2
sudo chown -R 1000:1000 ~/mongodb-data/data3ID,使用命令:id获取:
bashid
这将输出当前用户的用户ID(UID)、组ID(GID)以及所属的其他组信息。例如:plaintextuid=1000(your_username) gid=1000(your_username) groups=1000(your_username),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)
查看特定用户的ID如果您想查看某个特定用户的ID,可以使用  id  命令并指定用户名:

5.现在的状态,

docker-compose down
docker-compose up -d
kt@kt-SYS-4028GR-TR2:~/mongodb-data$ docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS                          PORTS     NAMES
d17b8804557a   mongo:latest   "docker-entrypoint.s…"   9 minutes ago   Restarting (1) 47 seconds ago             mongo2
c93a51036b89   mongo:latest   "docker-entrypoint.s…"   9 minutes ago   Restarting (1) 47 seconds ago             mongo3
8baf6759ce4f   mongo:latest   "docker-entrypoint.s…"   9 minutes ago   Restarting (1) 47 seconds ago             mongo1
kt@kt-SYS-4028GR-TR2:~/mongodb-data$ docker-compose down
Stopping mongo2 ... done
Stopping mongo3 ... done
Stopping mongo1 ... done
Removing mongo2 ... done
Removing mongo3 ... done
Removing mongo1 ... done
Removing network mongodb-data_py-mongo
kt@kt-SYS-4028GR-TR2:~/mongodb-data$ docker-compose up -d
Creating network "mongodb-data_py-mongo" with driver "bridge"
Creating mongo1 ... done
Creating mongo2 ... done
Creating mongo3 ... done
kt@kt-SYS-4028GR-TR2:~/mongodb-data$ docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS                  PORTS                                             NAMES
24b43c939be0   mongo:latest   "docker-entrypoint.s…"   4 seconds ago   Up Less than a second   0.0.0.0:27019->27017/tcp, [::]:27019->27017/tcp   mongo3
c0e15a4a763d   mongo:latest   "docker-entrypoint.s…"   4 seconds ago   Up Less than a second   0.0.0.0:27018->27017/tcp, [::]:27018->27017/tcp   mongo2
9ae68c68c59f   mongo:latest   "docker-entrypoint.s…"   4 seconds ago   Up Less than a second   0.0.0.0:27017->27017/tcp, :::27017->27017/tcp     mongo1
kt@kt-SYS-4028GR-TR2:~/mongodb-data$ 

6. 初始化副本集启动容器后,连接到其中一个MongoDB实例(例如  mongo1  ),并执行以下命令初始化副本集:

docker exec -it mongo1 mongosh

7.使用管理员进入。

rs.initiate({_id: "rs0",members: [{ _id: 0, host: "mongo1:27017" },{ _id: 1, host: "mongo2:27017" },{ _id: 2, host: "mongo3:27017" }]
});

 执行过程• 连接到MongoDB实例:使用  docker exec  命令连接到容器中的MongoDB实例。• 切换到  admin  数据库:在MongoDB shell中输入  use admin  ,然后按回车键。• 执行初始化命令:输入  rs.initiate(...)  命令,并按回车键执行。MongoDB会处理副本集的初始化过程,并返回初始化结果。检查状态

 

检查状态初始化完成后,您可以检查副本集的状态,以确保所有节点都已正确加入副本集: 

rs.status()

 

未完等 

相关文章:

自动化之数据库:docker部署mongo,为下一步的使用打下基础

以下是一个详细的Docker Compose配置示例,用于设置一个包含三个节点的MongoDB副本集,并确保安全性(使用账号密码进行认证)。所有节点都将设置在同一个Docker网络( py-mongo )下,以便于未来的扩…...

VR+智慧消防一体化决策平台

随着科技的飞速发展,虚拟现实(VR)技术与智慧城市建设的结合越来越紧密。在消防安全领域,VR技术的应用不仅能够提升消防训练的效率和安全性,还能在智慧消防一体化决策平台中发挥重要作用。本文将探讨“VR智慧消防一体化…...

新能源网站提升用户体验的关键

新能源网站的用户体验对于吸引和留住访问者至关重要。一个优秀的用户体验可以增加用户的满意度,提高他们对网站的忠诚度。在设计新能源网站时,关键在于简洁明了的界面和易于导航的布局。用户应该能够轻松找到他们需要的信息,而不会感到困惑或…...

【12_多数元素】

问题 给定一个大小为 n 的数组 nums ,返回其中的多数元素。 多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。 思路 使用摩尔投票算法来解决。该算法的基本思想是维护一个候选人和一个…...

深入理解 Android 中的 ActivityInfo

深入理解 Android 中的 ActivityInfo 在 Android 开发中,ActivityInfo 是一个非常重要的类,它包含了关于 Activity 的元信息。这些信息通常是从 AndroidManifest.xml 文件中提取的,开发者可以通过 ActivityInfo 类来获取和操作这些信息。本文…...

【通识安全】煤气中毒急救的处置

1.煤气中毒的主要症状与体征一氧化碳中毒,其中毒症状一般分为轻、中、重三种。 (1)轻度:仅有头晕、头痛、眼花、心慌、胸闷、恶心等症状。如迅速打开门窗,或将病人移出中毒环境,使之吸入新鲜空气和休息,给些热饮料&am…...

windows从0开始配置llamafactory微调chatglm3-6b

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、准备工作1、创建python虚拟环境(annoconda)2、配置pytorch傻瓜版3、llamafactory配置4、微调数据准备 一、准备工作 1、创建python虚拟环境(annoconda) 本篇文…...

IM-Magic Partition Resizer(分区调整软件) v7.5.0 多语便携版

IM-Magic Partition Resizer是一款功能强大的分区调整软件,允许用户调整并重新分配硬盘分区空间,从而在不丢失数据的情况下改变分区的大小和位置。 软件功能 支持调整和重新分配硬盘分区的空间大小。能够将分区扩大或缩小而不会导致数据丢失。可以改变分…...

matlab中高精度计算函数vpa与非厄米矩阵本征值的求解

clear;clc;close all tic %并行设置% delete(gcp(nocreate));%关闭之前的并行 cparcluster(local); c.NumWorkers50;%手动设置线程数(否则默认最大线程为12) parpool(c, c.NumWorkers); %并行设置%w1; u2.5;N30;valstozeros(2*N2,100); v10linspace(-3,3,100).;parfor jj1:leng…...

流程图(四)利用python绘制漏斗图

流程图(四)利用python绘制漏斗图 漏斗图(Funnel Chart)简介 漏斗图经常用于展示生产经营各环节的关键数值变化,以较高的头部开始,较低的底部结束,可视化呈现各环节的转化效率与变动大小。一般重…...

Elasticsearch:索引mapping

这里写目录标题 一、介绍二、动态mapping三、mapping属性(1)analyzer(分析器)(2) coerce(强制类型转换)(3)copy_to(合并参数) 一、介绍 二、动态mapping 三…...

AI赋能跨境电商:魔珐科技3D数字人破解出海痛点

跨境出海进入狂飙时代,AI应用正在深度渗透并重塑着跨境电商产业链的每一个环节,迎来了发展的高光时刻。生成式AI时代的大幕拉开,AI工具快速迭代,为跨境电商行业的突破与飞跃带来了无限可能性。 由于跨境电商业务自身特性鲜明&…...

计算机网络之---信号与编码

信号 在物理层,信号是用来传输比特流的物理量,它可以是电压、电流、光强度等形式,通常通过电缆、光纤或者无线信道等媒介传播。 信号主要分为以下两种类型: 模拟信号(Analog Signal):信号在时间…...

腾讯云AI代码助手编程挑战赛-FinChat

作品简介 FinChat 是一款极具创新性的智能股票分析工具,依托国内顶尖大语言模型打造而成。它专为日常忙碌、无暇顾及金融市场,却又手握闲钱渴望投资的人群量身定制。核心功能包括: 自动剖析股票数据:迅速生成深度专业研报。实时…...

2025年PMP考试最新报名通知

经PMI和中国国际人才交流基金会研究决定,中国大陆地区2025年第一期PMI认证考试定于3月15日举办。在基金会网站报名参加本次PMI认证考试的考生须认真阅读下文,知悉考试安排及注意事项,并遵守考试有关规定。 一、时间安排 (一&#…...

蓝凌EIS智慧协同平台 fi_message_receiver.aspx SQL注入漏洞复现(CVE-2025-22214)

0x01 产品简介 蓝凌EIS智慧协同平台是一款专为成长型企业打造的沟通、协同、社交的移动办公平台,旨在提升企业内部沟通、协作和信息共享的效率。该平台集成了各种协同工具和功能,全面满足企业的办公需求。具体来说,它覆盖了审批、流程、财务、行政、人事、客户等全在线业务…...

我用AI学Android Jetpack Compose之入门篇(2)

我跑成功了第一个Compose应用,但我还是有很多疑问,请人工智能来解释一下吧。答案来自 通义千问 文章目录 1.请解释一下Compose项目的目录结构。根目录模块目录(通常是app)app/build.gradleapp/src/mainapp/src/main/uiapp/src/ma…...

确认2D Tilemap Editor安装后仍然没有基础的Tile

Create > 2D 新建里面什么Tile类型都有,就是没有最基础的Tile。 在Assets文件夹中,点击右键 > Create > C# Script,新建一个脚本,代码内容复制粘贴进去 using UnityEngine; using UnityEngine.Tilemaps;[CreateAssetMe…...

flutter 独立开发之笔记

1、# use: - [flutter_launcher_icons:] 每次修改完icon后,都需要执行一遍 dart run flutter_launcher_icons 2、开启混淆并打包apk flutter build apk --obfuscate --split-debug-info./out/android/app.android-arm64.symbols 3、开启windows支持 flutter con…...

234.回文链表

234.回文链表 思路1&#xff1a;双指针 1.一次遍历记录链表的值到数组中 2.数组头尾双指针开始判断 复杂度&#xff1a; 时间O(n),空间O(n) 代码&#xff1a; class Solution { public:bool isPalindrome(ListNode* head) {vector<int>nums;while(head){nums.push…...

02、Redis的安装与配置

一、安装配置CentOS7 第一步:安装虚拟机 这个步比较简单,直接安装好VMware和使用CentOS7的镜像安装操作系统 相关资源如果有需要可以在如下位置下载: VMare虚拟机:VMare工具 CentOS7镜像:CentOS7镜像 JDK17_linux-x64:JDK17_linux-x64 linux服务器连接工具:MobaX…...

自动驾驶相关知识学习笔记

一、概要 因为想知道SIL、HIL是什么仿真工具&#xff0c;故而浏览了自动驾驶相关的知识。 资料来源《自动驾驶——人工智能理论与实践》胡波 林青 陈强 著&#xff1b;出版时间&#xff1a;2023年3月 二、图像的分类、分割与检测任务区别 如图所示&#xff0c;这些更高阶的…...

虹软人脸识别

虹软人脸识别 一.虹软人脸识别1. 获取APP_ID与SDK_KEY2. 获取SDK二.Spring整合1. jar包引入2. yaml配置3. 配置类4. 工具类5. api接口6. 启动加载三.前端四.相关文献一.虹软人脸识别 开发者平台 1. 获取APP_ID与SDK_KEY 2. 获取SDK 开发文档 jar包与dll文件...

【Unity笔记】如何把语言修改为简体中文?

方法1&#xff1a; 打开unity hub--------->点击安装--------------->点击你正在使用引擎的设置按钮&#xff08;右面&#xff09;------------>点击添加模块------------>最下面语言包&#xff0c;下载简体中文。 方法2&#xff1a; https://new-translate.unit…...

在Nvidia Jetson ADX Orin中使用TensorRT-LLM运行llama3-8b

目录 背景&#xff1a;步骤 1.获取模型权重第 2 步&#xff1a;准备第 3 步&#xff1a;构建 TensorRT-LLM 引擎 背景&#xff1a; 大型语言模型 &#xff08;LLM&#xff09; 推理的关键瓶颈在于 GPU 内存资源短缺。因此&#xff0c;各种加速框架主要强调减少峰值 GPU 内存使…...

图数据库管理系统(Graph DBMS)全面解析

目录 前言1. 图数据库管理系统概述1.1 图数据库的基本组成1.2 图数据库的工作原理 2. 图数据库的特点与优势2.1 高效处理复杂关系数据2.2 灵活的数据建模2.3 优越的查询性能2.4 支持大规模分布式存储 3. 图数据库的应用场景3.1 社交网络3.2 推荐系统3.3 金融风控3.4 网络与IT运…...

中华人民共和国预算法实施条例

(1995年11月2日国务院第37次常务会议通过 1995年11月22日中华人民共和国国务院令第186号发布 自发布之日起施行) 第一章 总则 第一条 根据《中华人民共和国预算法》(以下简称预算法)&#xff0c;制定本条例。 第二条 县级以上地方政府的派出机关&#xff0c;根据本级政…...

LabVIEW专栏十、工厂模式

目录 一、工厂模式1.1、创建仪器管理类1.2、初始化1.3、方法1.3.1、set devices1.3.2、index to device 1.4、释放资源 二、测试管理类2.1、界面2.2、程序框图2.2.1、初始化2.2.2、索引仪器 该章介绍一种设计模式"工厂模式"&#xff0c;新建一个仪器管理类&#xff0…...

基于SpringBoot的斯诺克球馆预约购票管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

C# 设计模式(行为型模式):命令模式(专注于撤销重做)

C# 设计模式&#xff08;行为型模式&#xff09;&#xff1a;命令模式 (Command Pattern) 一、什么是命令模式&#xff1f; 命令模式&#xff08;Command Pattern&#xff09;是一种行为型设计模式&#xff0c;它将请求封装成一个对象&#xff0c;从而使你可以用不同的请求、队…...

牛客网刷题 ——C语言初阶(2分支和循环-for)——打印菱形

1. 题目描述 用C语言在屏幕上输出以下图案&#xff1a; 2. 思路 我是先上手&#xff0c;先把上半部分打印出来&#xff0c;然后慢慢再来分析&#xff0c;下面这是我先把整个上半部分打印出来&#xff0c;因为空格不方便看是几个&#xff0c;这里先用&代替空格了 然后这里…...

[ LeetCode 75 ] 1768. 交替合并字符串

题目描述&#xff1a;&#xff08;相关标签&#xff1a;双指针、字符串&#xff09; 给你两个字符串 word1 和 word2 。请你从 word1 开始&#xff0c;通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长&#xff0c;就将多出来的字母追加到合并后字符串的末尾。 返…...

【Java】——方法

方法&#xff08;method&#xff09;是程序中最小的执行单元 eg&#xff1a;main方法 作用&#xff1a; 提高代码的复用性、提高代码的可维护性 方法的格式&#xff1a; 将代码打包在一起&#xff0c;该过程称为方法定义 方法调用&#xff1a; 方法定义后并不是直接运行&am…...

Koi技术教程-Tauri基础教程-第一节 Tauri项目创建及结构说明

1 “你日渐平庸&#xff0c;甘于平庸&#xff0c;将继续平庸。”——《以自己喜欢的方式过一生》 2. “总是有人要赢的&#xff0c;那为什么不能是我呢?”——科比布莱恩特 3. “你那么憎恨那些人&#xff0c;和他们斗了那么久&#xff0c;最终却要变得和他们一样&#xff0c;…...

《Mcal》--MCU模块

一、MCU模块的主要功能 控制系统时钟的产生。控制系统通用模块&#xff0c;该模块会涉及到Adc、Ftm等外设的配置。控制外设时钟。控制MCU运行的模式。初始化定义RAM Section。 比较重要的是时钟的配置。 二、系统时钟的配置 1、芯片时钟树 要想弄明白时钟配置&#xff0c;需…...

大模型思维链推理的进展、前沿和未来分析

大模型思维链推理的综述&#xff1a;进展、前沿和未来 "Chain of Thought Reasoning: A State-of-the-Art Analysis, Exploring New Horizons and Predicting Future Directions." 思维链推理的综述&#xff1a;进展、前沿和未来 摘要&#xff1a;思维链推理&#…...

windows上利用MinGW编译hiredis

1、下载 hiredis https://github.com/redis/hiredis 2、利用CMake生成Makefile文件 CMAKE_BUILD_TYPE: 默认空的时候是Release的。如果需要Debug则自行修改。 执行Configure的时候选择MinGW&#xff08;确保MinGW已经安装&#xff0c;并且已加入到环境变量&#xff09; 3、执行…...

06-RabbitMQ基础

目录 1.初识MQ 1.1.同步调用 1.2.异步调用 1.3.技术选型 2.RabbitMQ 2.1.安装 2.2.收发消息 2.2.1.交换机 2.2.2.队列 2.2.3.绑定关系 2.2.4.发送消息 2.3.数据隔离 2.3.1.用户管理 2.3.2.virtual host 3.SpringAMQP 3.1.导入Demo工程 3.2.快速入门 3.2.1.消…...

Spring Boot 的自动配置,以rabbitmq为例,请详细说明

Spring Boot 的自动配置特性能够大大简化集成外部服务和组件的配置过程。以 RabbitMQ 为例&#xff0c;Spring Boot 通过 spring-boot-starter-amqp 提供了自动配置支持&#xff0c;开发者只需在应用中添加相关依赖并配置必要的属性&#xff0c;Spring Boot 会自动配置所需的连…...

ros2-4.1 服务通信介绍

服务是ROS图中节点之间的另一种通信方法。服务分为客户端和服务端&#xff0c;客户端发送请求给服务端&#xff0c;服务端可以根据客户端的请求做一些处理&#xff0c;然后返回结果给客户端。也称为为请求-响应模型。 服务和话题的不同之处&#xff0c;话题是没有返回的&#…...

如何 cURL Elasticsearch:进入 Shell

作者&#xff1a;来自 Elastic Philipp Krenn Kibana 的控制台是开始使用 Elasticsearch 的 REST API 的最简单方法 - 语法突出显示、自动完成、格式化、导出 cURL、JavaScript 或 Python。而且你不必担心正确的端点、身份验证等。但是有时&#xff0c;如果 Kibana 不可用、你…...

【信息系统项目管理师】高分论文:论信息系统项目的风险管理(人民医院的信息系统)

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 论文1、规划风险管理2、项目风险识别3、风险定性分析4、风险定量分析5、制定风险应对6、实施风险应对计划7、监督风险论文 2022年6月,我作为项目经理承担了XX县人民医院的信息系统建设,该项目总投资300万,其…...

安装和配置 Apache 及 PHP

安装和配置 Apache 及 PHP # 1. 停止当前 Apache 服务 sudo apachectl stop# 2. 清除现有的 Apache 配置和文件 sudo rm -rf /etc/apache2 sudo rm -rf /usr/sbin/httpd sudo rm -rf /Library/WebServer# 3. 使用 Homebrew 安装 Apache brew install httpd# 4. 启动 Apache su…...

jenkins入门12-- 权限管理

Jenkins的权限管理 由于jenkins默认的权限管理体系不支持用户组或角色的配置&#xff0c;因此需要安装第三发插件来支持角色的配置&#xff0c;我们使用Role-based Authorization Strategy 插件 只有项目读权限 只有某个项目执行权限...

虚功、达朗贝尔原理和拉格朗日方程

本文先引入虚位移,从虚功和虚功原理出发,介绍达朗贝尔原理(d’Alembert’s principle) 和 拉格朗日方程(Lagrange’s equations)。 1. 虚功 力学系统的虚位移(virtual displacement)或称无限小位移(infinitesimal displacement)是指力学系统的位形(configuration …...

面向对象分析和设计OOA/D,UML,GRASP

目录 什么是分析和设计&#xff1f; 什么是面向对象的分析和设计&#xff1f; 迭代开发 UML 用例图 交互图 基于职责驱动设计 GRASP 常见设计原则 什么是分析和设计&#xff1f; 分析&#xff0c;强调是对问题和需求的调查研究&#xff0c;不是解决方案。例如&#x…...

【Linux】记录一下考RHCE的学习过程(七)

年底了&#xff0c;公司接的北京地铁轨道交通的项目做不完了&#xff0c;一百多列地铁的设备都得调&#xff0c;派我出差了几周&#xff0c;这几天才回来&#xff0c;出差累死了实在是没办法更新。&#xff08;YOASOBI的二开票还没抢到ToT&#xff0c;哭死&#xff0c;看看回滚…...

【深度学习】深度(Deep Learning)学习基础

深度学习&#xff08;Deep Learning&#xff09; 深度学习是一种基于人工神经网络的机器学习方法&#xff0c;通过多个层次&#xff08;深度&#xff09;的神经网络从数据中自动学习特征和模式。它是人工智能的一个核心领域&#xff0c;尤其在处理复杂数据&#xff08;如图像、…...

121 买入股票的最佳时机

思路1&#xff1a; 买的那天一定是卖的那天之前的最小值。 每到一天&#xff0c;维护那天之前的最小值即可。 假设第一天是最小值&#xff0c;最大值初始化为0&#xff0c;当以后某天的价格小于最小值时&#xff0c;将最小值更新 当天价格大于最小值&#xff0c;说明有利可图…...

JVM之Java内存模型

Java内存模型&#xff08;Java Memory Model&#xff0c;简称JMM&#xff09;是Java虚拟机&#xff08;JVM&#xff09;规范中定义的一套规则&#xff0c;用于描述多线程环境下变量如何被访问和同步。在多线程编程中&#xff0c;内存模型的重要性不言而喻&#xff0c;它直接关系…...