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

linux云计算学习第八周,第九周

目录

1、按照课程演示完成tomcat部署安装和配置虚拟主机实现java程序的访问

1.1ubantu主机部署java环境

1.2定制环境变量

1.3加载环境变量

1.4获取软件

1.5解压软件

1.6定制软连接

1.7定制系统环境变量

1.8启动tomcat

1.9定制服务脚本

1.9.1创建用户

1.9.2赋予权限

1.9.3编写脚本

1.9.4加载服务配置

1.9.5启动

2、JVM原理总结,GC,内存分配等

2.1JVM原理

2.2GC

2.3内存分配

3、 总结关系型数据库相关概念,关系,行,列,主键,唯一键。

3.1关系型数据库

3.2行

3.3列

3.4主键

3.5唯一键

4、总结关联类型,1对1,1对多,多对多关系。可以自行设计表进行解释。

4.1一对一关系

4.2一对多关系

4.3多对多关系

5、基于课程演示总结Mysql安装方式,并总结mysql配置文件。

5.1Mysql安装方式

5.1.1包管理方式安装

5.1.2二进制源码安装

5.2mysql配置文件

6、掌握如何获取SQL命令的帮助,基于课程演示完成数据库和表的创建等

6.1获取SQL命令的帮助

6.2完成数据库和表的创建

7、完成总结DDL, DML的用法,并配上示例。

7.1DDL语法

7.1.1创建

7.1.2修改

7.1.3删除

7.2DML语法

7.2.1插入

7.2.2查询

7.2.3更新

7.2.4删除

8、总结mysql架构原理和总结myisam和Innodb存储引擎的区别。

8.1mysql架构原理

8.1.1连接层

8.1.2服务层

8.1.3存储引擎层

8.1.4系统层

8.2myisam和innodb的区别

9、总结事务ACID事务特性,总结事务日志工作原理。

9.1事物ACID特性

9.1.1原子性

9.1.2一致性

9.1.3隔离性

9.1.4持久性

9.2事物日志工作原理

9.2.1redo log

9.2.2undo log

9.2.3协同工作

10、总结mysql日志类型,并说明如何启动日志。

10.1mysql日志类型

10.1.1错误日志

10.1.2通用日志

10.1.3慢查询日志

10.1.4二进制日志

11、总结二进制日志的不同格式的使用场景。

11.1statment

11.2row

12、基于课程演示完成mysql备份,完成数据库备份与恢复验证。

12.1MySQL备份

13、根据课程演示完成mysql 主从和读写分离的实验过程

13.1主节点配置

13.1.1安装软件

13.1.2准备目录并修改权限

13.1.3修改配置文件

13.1.4创建账号并授权

13.2从节点配置

13.2.1安装软件

13.2.2准备目录并修改权限

13.2.3修改配置文件

13.2.4配置主从

13.2.5启动同步

13.3测试同步效果

13.3.1主节点写入数据

13.3.2从节点验证


1、按照课程演示完成tomcat部署安装和配置虚拟主机实现java程序的访问

1.1ubantu主机部署java环境

apt install openjdk-11-jdk -y

1.2定制环境变量

vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export JAVA_BIN=$JAVA_HOME/bin
export PATH=$JAVA_BIN:$PATH

1.3加载环境变量

source /etc/profile.d/java.sh

1.4获取软件

mkdir /data/softs -p; cd /data/softs
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.97/bin/apache-tomcat-9.0.97.tar.gz

链接已失效,需要自行下载安装包后上传,就算找到可用连接,下载速度也是非常慢

1.5解压软件

mkdir /data/server

1.6定制软连接

ln -s /data/server/apache-tomcat-9.0.97 /data/server/tomcat

1.7定制系统环境变量

vim /etc/profile.d/tomcat.sh
export CATALINA_BASE=/data/server/tomcat
export CATALINA_HOME=/data/server/tomcat
export CATALINA_TMPDIR=$CATALINA_HOME/temp
export CLASSPATH=$CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/tomcat-juli.jar
export PATH=$CATALINA_HOME/bin:$PATH

加载变量

source /etc/profile.d/tomcat.sh

1.8启动tomcat

catalina.sh start

关闭tomcat

catalina.sh stop

1.9定制服务脚本

1.9.1创建用户

useradd -r -s /sbin/nologin tomcat

1.9.2赋予权限

chown -R tomcat:tomcat /data/server/tomcat
chown tomcat:tomcat -R /data/server/tomcat/*

1.9.3编写脚本

vim /lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat
After=syslog.target network.target[Service]
Type=forking
# Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/
ExecStart=/data/server/tomcat/bin/startup.sh
ExecStop=/data/server/tomcat/bin/shutdown.sh
PrivateTmp=true
User=tomcat
Group=tomcat[Install]
WantedBy=multi-user.target

1.9.4加载服务配置

systemctl daemon-reload

1.9.5启动

systemctl start tomcat

2、JVM原理总结,GC,内存分配等

2.1JVM原理

JVM,全称Java Virtual Machine,即Java虚拟机。它是一个运行在计算机上的程序,主要职责是运行Java字节码文件。

JVM是一种规范,本身是一个虚拟计算机,直接和操作系统进行交互,不直接与硬件交互。操作系统可以帮助JVM完成与硬件的交互工作。

Java借助JVM实现了平台无关性,即“write Once,Run Anywhere(编写一次,到处运行)”的跨平台特性。

2.2GC

在堆内存中如果创建的对象不再使用,仍占用着内存,此时即为垃圾,需要进行垃圾回收,从而释放内存空间给其它对象使用。

这个时候,JVM将调用垃圾回收机制来回收内存空间。 堆内存里面经常创建、销毁对象,内存也是被使用、被释放。

如果不妥善处理,一个使用频繁的进程,可能会出现虽然有足够的内存容量,但是无法分配出可用内存空间,因为没有连续成片的内存了,内存全是碎片化的空间。 所以需要有合适的垃圾回收机制,确保正常释放不再使用的内存空间,还需要保证内存空间尽可能的保持一定的连续。

2.3内存分配

优先在 Eden 区分配:大多数对象优先在新生代 Eden 区分配,当 Eden 区满时触发 Minor GC

大对象直接进入老年代:超过 -XX:PretenureSizeThreshold 阈值的对象直接分配到老年代

长期存活对象进入老年代:对象经历一定次数(默认 15 次)GC 后仍存活,晋升到老年代

动态年龄判断:Survivor 区中相同年龄对象的总大小超过 Survivor 空间的 50%,年龄≥该值的对象直接进入老年代

空间分配担保:Minor GC 前,老年代会先检查是否有足够空间容纳新生代存活对象,否则提前触发 Major GC

3、 总结关系型数据库相关概念,关系,行,列,主键,唯一键。

3.1关系型数据库

关系型数据库是基于关系模型构建的数据库,通过二维表结构组织和存储数据,以行和列的形式体现数据间的关联关系,典型代表包括 MySQL、Oracle、SQL Server 等。其核心设计思想是将现实世界中的实体及实体间关系抽象为表结构,通过结构化查询语言(SQL)进行数据操作。

3.2行

又称记录(Record),是表中的一条完整数据条目,代表一个具体的实体实例。

3.3列

又称字段(Field),是表中的一个数据维度,代表实体的某一属性。

3.4主键

用于唯一标识表中每一行的一个或多个列的组合,是表的核心约束。

3.5唯一键

确保表中某一列或列组合的值具有唯一性的约束,但允许存在一个 NULL 值(部分数据库支持)。

4、总结关联类型,1对1,1对多,多对多关系。可以自行设计表进行解释。

4.1一对一关系

表 A 中的一条记录仅对应表 B 中的一条记录

-- 用户表(user)
CREATE TABLE user (user_id INT PRIMARY KEY,  -- 主键username VARCHAR(50) NOT NULL,password VARCHAR(100) NOT NULL
);-- 用户详情表(user_detail)
CREATE TABLE user_detail (detail_id INT PRIMARY KEY,user_id INT UNIQUE,  -- 唯一外键,关联用户表real_name VARCHAR(50),address VARCHAR(200),phone VARCHAR(20),FOREIGN KEY (user_id) REFERENCES user(user_id)
);

4.2一对多关系

表 A 中的一条记录可对应表 B 中的多条记录,而表 B 中的一条记录仅对应表 A 中的一条记录

-- 部门表(department)
CREATE TABLE department (dept_id INT PRIMARY KEY,dept_name VARCHAR(50) NOT NULL,location VARCHAR(100)
);-- 员工表(employee)
CREATE TABLE employee (emp_id INT PRIMARY KEY,emp_name VARCHAR(50) NOT NULL,salary DECIMAL(10, 2),dept_id INT,  -- 外键,关联部门表FOREIGN KEY (dept_id) REFERENCES department(dept_id)
);

4.3多对多关系

表 A 中的一条记录可对应表 B 中的多条记录,反之表 B 中的一条记录也可对应表 A 中的多条记录

-- 学生表(student)
CREATE TABLE student (student_id INT PRIMARY KEY,student_name VARCHAR(50) NOT NULL,grade INT
);-- 课程表(course)
CREATE TABLE course (course_id INT PRIMARY KEY,course_name VARCHAR(50) NOT NULL,teacher VARCHAR(50)
);-- 学生选课中间表(student_course)
CREATE TABLE student_course (student_id INT,course_id INT,score DECIMAL(5, 2),  -- 可选:记录选课成绩PRIMARY KEY (student_id, course_id),  -- 联合主键FOREIGN KEY (student_id) REFERENCES student(student_id),FOREIGN KEY (course_id) REFERENCES course(course_id)
);

5、基于课程演示总结Mysql安装方式,并总结mysql配置文件。

5.1Mysql安装方式

5.1.1包管理方式安装

配置好仓库源,用包管理器进行安装

apt install mysql-server -y

5.1.2二进制源码安装

下载适合系统的二进制安装文件,创建 mysql 组和用户,解压文件并设置权限,执行mysql/bin/mysqld --initialize初始化,指定配置文件路径等,将相关文件添加为系统服务并设置开机自启动。

5.2mysql配置文件

vim /etc/my.cnf.d/mysql-clients.cn
[mysql] 
# 设置mysql命令行客户端的全局选项
[mysql_upgrade]
# 用于mysql_upgrade工具的配置。mysql_upgrade用于检查并升级MySQL表的格式。
[mysqladmin]
# 为mysqladmin工具配置选项。mysqladmin用于执行管理任务,如检查服务器状态、创建和删除数据库
等。
[mysqlbinlog]
# 配置mysqlbinlog工具,它用于处理二进制日志文件,这些文件记录了数据库的所有更改。
[mysqlcheck]
# 为mysqlcheck工具设置选项,该工具用于检查、修复、优化和分析表。
[mysqldump]
# 配置mysqldump工具,它用于生成数据库的备份。
[mysqlimport]
# 为mysqlimport工具设置选项,该工具用于从文本文件导入数据到表中。
[mysqlshow]
# 配置mysqlshow工具,它用于显示数据库、表、列或索引的信息。
[mysqlslap]
# 为mysqlslap工具配置选项,该工具用于模拟和测试MySQL服务器的负载。

6、掌握如何获取SQL命令的帮助,基于课程演示完成数据库和表的创建等

6.1获取SQL命令的帮助

使用help命令

6.2完成数据库和表的创建

create database db1;
CREATE TABLE IF NOT EXISTS user (user_id INT AUTO_INCREMENT PRIMARY KEY,         -- 自增主键,唯一标识用户username VARCHAR(50) NOT NULL UNIQUE,           -- 用户名非空且唯一password VARCHAR(100) NOT NULL,                 -- 密码非空email VARCHAR(100) UNIQUE,                      -- 邮箱唯一(允许NULL)phone VARCHAR(20),                               -- 手机号create_time DATETIME DEFAULT CURRENT_TIMESTAMP,  -- 创建时间默认当前时间last_login_time DATETIME,                        -- 最后登录时间status TINYINT DEFAULT 1 COMMENT '1=启用,0=禁用' -- 状态字段+注释
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;            -- 存储引擎+字符集

7、完成总结DDL, DML的用法,并配上示例。

7.1DDL语法

7.1.1创建

-- 1.1 创建数据库
CREATE DATABASE IF NOT EXISTS mydb
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;-- 1.2 创建表(含完整约束)
CREATE TABLE IF NOT EXISTS user (user_id INT AUTO_INCREMENT PRIMARY KEY,        -- 自增主键username VARCHAR(50) NOT NULL UNIQUE,         -- 非空唯一password VARCHAR(100) NOT NULL,               -- 非空email VARCHAR(100) UNIQUE,                    -- 邮箱唯一age TINYINT CHECK (age > 0 AND age < 150),    -- 检查约束create_time DATETIME DEFAULT CURRENT_TIMESTAMP -- 默认当前时间
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;-- 1.3 创建索引
CREATE INDEX idx_username ON user(username);    -- 普通索引
CREATE UNIQUE INDEX uk_email ON user(email);    -- 唯一索引
CREATE FULLTEXT INDEX ft_desc ON product(desc); -- 全文索引(MyISAM引擎)-- 1.4 创建视图(虚拟表,基于查询结果)
CREATE VIEW v_active_users AS
SELECT user_id, username, age FROM user WHERE status = 1;

7.1.2修改

-- 2.1 添加字段
ALTER TABLE user ADD COLUMN phone VARCHAR(20);
ALTER TABLE user ADD COLUMN address VARCHAR(200) AFTER username; -- 指定位置-- 2.2 修改字段
ALTER TABLE user MODIFY COLUMN phone VARCHAR(25) NOT NULL;        -- 修改类型和约束
ALTER TABLE user CHANGE COLUMN address user_addr VARCHAR(255);   -- 修改字段名和类型-- 2.3 删除字段
ALTER TABLE user DROP COLUMN phone;-- 2.4 添加约束
ALTER TABLE user ADD PRIMARY KEY (user_id);                      -- 主键(已存在则忽略)
ALTER TABLE user ADD UNIQUE (phone);                            -- 唯一键
ALTER TABLE user ADD FOREIGN KEY (dept_id) REFERENCES dept(dept_id); -- 外键-- 2.5 修改表属性
ALTER TABLE user ENGINE=InnoDB;                                 -- 更改存储引擎
ALTER TABLE user CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 修改字符集

7.1.3删除

-- 3.1 删除表
DROP TABLE IF EXISTS user;                                      -- 删除表及数据
DROP TABLE IF EXISTS user, order_info;                         -- 批量删除-- 3.2 清空表数据(保留表结构)
TRUNCATE TABLE user;                                           -- 速度比DELETE快,不可回滚

7.2DML语法

7.2.1插入

-- 1.1 插入完整记录
INSERT INTO user (username, password, email, age)
VALUES ('张三', '123456', 'zhangsan@example.com', 25);-- 1.2 批量插入
INSERT INTO user (username, password, email)
VALUES 
('李四', 'abcdef', 'lisi@example.com'),
('王五', 'qwerty', 'wangwu@example.com');-- 1.3 从查询结果插入
INSERT INTO user (username, email, age)
SELECT username, email, age FROM old_user WHERE age > 18;-- 1.4 插入或更新(ON DUPLICATE KEY UPDATE)
INSERT INTO user (user_id, username, email)
VALUES (1001, '赵六', 'zhaoliu@example.com')
ON DUPLICATE KEY UPDATE email = 'zhaoliu@new.com'; -- 若user_id=1001存在则更新email

7.2.2查询

-- 2.1 基础查询
SELECT user_id, username, age FROM user WHERE age > 30;-- 2.2 多表关联查询(内连接、左连接)
SELECT u.username, o.order_id, o.amount
FROM user u
JOIN order_info o ON u.user_id = o.user_id    -- 内连接
LEFT JOIN order_product op ON o.order_id = op.order_id; -- 左连接-- 2.3 分组与聚合
SELECT dept_id, COUNT(*) AS user_count, AVG(age) AS avg_age
FROM user
GROUP BY dept_id
HAVING user_count > 10 AND avg_age < 40;-- 2.4 子查询
SELECT username, age FROM user
WHERE age > (SELECT AVG(age) FROM user);  -- 查询年龄大于平均年龄的用户

7.2.3更新

-- 3.1 单表更新
UPDATE user SET age = age + 1 WHERE username LIKE '张%'; -- 所有张姓用户年龄+1
UPDATE user SET email = 'default@example.com' WHERE email IS NULL; -- 补全空邮箱-- 3.2 多表关联更新
UPDATE user u
JOIN order_info o ON u.user_id = o.user_id
SET u.is_vip = 1 WHERE o.total_amount > 10000; -- 消费超1万的用户设为VIP

7.2.4删除

-- 4.1 单表删除
DELETE FROM user WHERE age < 18; -- 删除未成年人记录
DELETE FROM user LIMIT 100;      -- 最多删除100条(防误删)-- 4.2 多表关联删除
DELETE u FROM user u
JOIN order_info o ON u.user_id = o.user_id
WHERE o.create_time < '2023-01-01'; -- 删除2023年前无订单的用户

8、总结mysql架构原理和总结myisam和Innodb存储引擎的区别。

8.1mysql架构原理

mysql采用插件式架构,核心功能分为四组

8.1.1连接层

负责处理客户端连接请求,支持 TCP/IP、Unix Socket 等连接方式
包含连接池管理、权限验证(基于 user 表的用户认证)
处理客户端协议解析(如 MySQL Protocol)

8.1.2服务层

查询解析器:将 SQL 语句解析为抽象语法树(AST)
查询优化器:分析执行计划,选择最优索引和表连接方式
查询缓存:缓存 SELECT 结果(5.7 版本后默认禁用,8.0 版本移除)
内置函数:实现数学、字符串、日期等函数逻辑
事务管理:处理 ACID 事务(由存储引擎实现具体逻辑)

8.1.3存储引擎层

插件式架构核心,不同引擎实现独立的数据存储逻辑
标准接口:read_row、write_row、delete_row等
常见引擎:InnoDB(默认)、MyISAM、Memory、Archive 等

8.1.4系统层

操作系统交互:文件 IO、内存分配
磁盘存储管理:数据文件、日志文件的物理读写
进程 / 线程管理:处理多连接并发请求

8.2myisam和innodb的区别

9、总结事务ACID事务特性,总结事务日志工作原理。

9.1事物ACID特性

9.1.1原子性

事务作为最小执行单元,要么全部完成,要么全部回滚,不存在中间状态

9.1.2一致性

事务执行前后,数据库从一个合法状态转换到另一个合法状态

9.1.3隔离性

多个事务并发执行时,相互之间不可见,避免数据不一致

9.1.4持久性

事务提交后,数据变更永久保存,即使发生系统崩溃也不丢失

9.2事物日志工作原理

9.2.1redo log

保证事务的持久性,记录数据修改后的新状态

9.2.2undo log

实现事务原子性

9.2.3协同工作

Redo Log 通过预写机制确保数据不丢失,Undo Log 通过版本控制和回滚机制保障事务原子性与隔离性。两者配合 InnoDB 的 WAL 机制和检查点策略,在保证事务可靠性的同时,最大化提升数据库性能。

10、总结mysql日志类型,并说明如何启动日志。

10.1mysql日志类型

10.1.1错误日志

主要记录 MySQL 服务器启动和停止过程中的信息、服务器在运行过程中发生的故障和异常情况等。

错误日志功能默认开启且无法禁止。默认情况下,错误日志存储在 MySQL 数据库的数据文件夹下,名称默认为mysqld.log(Linux 系统)或hostname.err(mac 系统)。如果需要指定文件名,可在my.cnf或my.ini中配置log - error=(path/(filename)),修改配置后需重启 MySQL 服务。

10.1.2通用日志

记录所有到达 MySQL 服务器的 SQL 语句

编辑my.cnf(或my.ini)配置文件,在[mysqld]部分添加general_log = 1开启通用日志,添加general_log_file = /path/to/your/log/file.log指定日志文件的路径,然后重启 MySQL 服务。

10.1.3慢查询日志

用于记录执行时间超过特定阈值的 SQL 语句,有助于优化数据库性能。

编辑配置文件,在[mysqld]部分添加slow_query_log = 1,slow_query_log_file = /path/to/your/slow/log/file.log指定慢查询日志文件路径,long_query_time = n(n为慢查询的时间阈值,单位为秒),最后重启 MySQL 服务。

10.1.4二进制日志

记录所有修改数据库数据的 DML 和 DDL(select 语句除外)语句,以二进制形式保存,描述数据的更改,用于数据恢复和主从复制等。

编辑配置文件,在[mysqld]部分添加log - bin = /path/to/your/binlog/file,重启 MySQL 服务。

11、总结二进制日志的不同格式的使用场景。

11.1statment

特点:直接记录原始 SQL 语句

使用场景

1、简单查询与静态数据操作

当 SQL 语句完全确定(如UPDATE users SET status=1 WHERE id=123),且无触发器、函数依赖时,可显著降低日志存储成本。

2、开发测试环境

对数据一致性要求较低的场景(如开发调试、临时报表生成),可通过SET sql_log_bin=0临时禁用日志,或直接使用 STATEMENT 格式减少日志量。

11.2row

特点:记录每行数据的具体变化

使用场景

1、金融级强一致性需求

在支付系统、账户管理等场景中,必须确保主从数据完全同步。

2、高并发写入与大表操作

当表包含百万级数据且频繁更新时,ROW 格式能精准记录变更,避免因 STATEMENT 格式的全表扫描导致的复制延迟。

12、基于课程演示完成mysql备份,完成数据库备份与恢复验证。

12.1MySQL备份

mariadb冷备操作流程-CSDN博客https://blog.csdn.net/m0_57215217/article/details/148540307?spm=1001.2014.3001.5501

13、根据课程演示完成mysql 主从和读写分离的实验过程

13.1主节点配置

13.1.1安装软件

yum install mysql-server -y

13.1.2准备目录并修改权限

mkdir -pv /data/mysql/logbin
chown -R mysql:mysql /data/mysql/

13.1.3修改配置文件

vim /etc/my.cnf.d/mysql-server.cnf

添加如下内容

server-id=177                                              #指定server-id
log_bin=/data/mysql/logbin/mysql-bin                       #指定二进制文件路径
default_authentication_plugin=mysql_native_password # 避免出现认证问题

重启服务

systemctl restart mysqld.service

13.1.4创建账号并授权

create user repluser@'10.0.0.%' identified by '123456';
grant replication slave on *.* to repluser@'10.0.0.%';
flush privileges;

13.2从节点配置

13.2.1安装软件

yum install mysql-server -y

13.2.2准备目录并修改权限

mkdir -pv /data/mysql/logbin
chown -R mysql:mysql /data/mysql/

13.2.3修改配置文件

vim /etc/my.cnf.d/mysql-server.cnf
server-id=183                                             #指定server-id
log_bin=/data/mysql/logbin/mysql-bin                       #指定二进制文件路径
default_authentication_plugin=mysql_native_password # 避免出现认证问题

重启服务

systemctl restart mysqld.service

13.2.4配置主从

CHANGE MASTER TO MASTER_HOST='10.0.0.12', MASTER_USER='repluser',
MASTER_PASSWORD='123456', MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=849;

13.2.5启动同步

start slave;

13.3测试同步效果

13.3.1主节点写入数据

创建数据库

create database db1;
use db1;

创建数据表

create table `student`(`id` int unsigned NOT NULL AUTO_INCREMENT,`name` varchar(20) NOT NULL,`age` tinyint unsigned DEFAULT NULL,`gender` enum('M','F') DEFAULT 'M',PRIMARY KEY (`id`))ENGINE=InnoDB;

写入数据

insert into student (name,age,gender)values('user1',10,'M'),('user2',20,'F'),('user3',30,'M');

13.3.2从节点验证

可以看到此时从节点已经有数据

http://www.xdnf.cn/news/1047079.html

相关文章:

  • 【QT系统相关】QT网络
  • 怎么优化MySQL中的索引
  • 性能优化 - 高级进阶: 性能优化全方位总结
  • Matlab数字信号处理——基于GUI的ECG信号处理平台设计与实现
  • 低秩分解的本质是通过基矩阵和系数矩阵的线性组合,以最小的存储和计算代价近似表示复杂矩阵
  • 线性代数(1)线性方程组的多种解法
  • 读取第三方的单细胞rds文件进行单细胞分析教程
  • 从汇编的角度揭开C++ this指针的神秘面纱(下)
  • 【2】Redis 缓存击穿原理和解决方案
  • 小米MiMo系列:MiMo-7B-RL技术报告解读
  • 05-mcp-server案例分享-用豆包大模型 1.6 手搓文生图视频 MCP-server发布到PyPI官网
  • Python中shutil.rmtree()的目录删除能力详解
  • kicad运行时出错,_Pnext->_Myproxy = nullptr;访问内存出错
  • Spring Boot Web开发
  • 《拖延心理学》:深度剖析与应对指南​
  • 深入解析解释器模式:语言解析的优雅实现
  • Leetcode 刷题记录 16 —— 栈
  • 【git】 `git rm --cached *.pt` 删除了缓存,但这些大文件的历史记录仍然存在于Git历史
  • 《棒球百科》棒球怎么玩·棒球9号位
  • 岐黄慧问六月最终项目完成情况
  • 用于汽车毫米波雷达的四维高分辨率点云图像
  • 微软Bing正式推出AI视频生成工具:Bing Video Creator,由Sora技术驱动,限时免费体验!
  • 机器学习实验报告5-K-means 算法
  • ansible变量
  • 如何修改PyCharm的界面颜色(超详细)
  • vue2和vue3的底层逻辑原理、区别、用法以及应用优缺点
  • 大模型训练与推理显卡全指南:从硬件选型到性能优化
  • 软考 系统架构设计师系列知识点之杂项集萃(90)
  • AOP +ThreadLocal实现对接口监控
  • linux设置信号量系统参数