ubuntu与redhat的不同之处
华子目录
- 什么是ubuntu
- 概述
- ubuntu版本简介
- 桌面版
- 服务器版
- 安装部署
- 部署后的设置
- 设置root密码
- 关闭防火墙
- 启用允许root进行ssh登录
- 更改apt源
- 安装所需软件
- 安装nginx
- 安装apache
- 网络配置
- Netplan概述
- 配置详解
- 配置文件
- DHCP
- 静态IP设置
- 设置
- 软件安装
- 方法
- apt安装软件
- 作用
- 常用命令
- 配置apt源
- deb软件包安装
- 概念
- `dpkg`命令
什么是ubuntu
概述
ubuntu(乌班图)属于debian系列,debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统
debian最早由lan Murdock于1993年创建,分为三个版本分支(branch):stable,testing和unstabledebian最具特色的是apt-get / dpkg包管理方式,其实redhat的yum也是在模仿debian的apt方式,但在二进制文件发行方式中,apt应该是最好的了。ubuntu server是Ubuntu操作系统的一个版本,是Ubuntu家族的一员,被工程设计作为互联网的骨干系统,Ubuntu server为公共或私有数据中心带来经济和技术上的可扩展性。
ubuntu版本简介
桌面版
- 网址:https://cn.ubuntu.com/download

- 桌面版是带有
GUI界面,面向普通用户使用的操作系统,预装了可帮助用户执行日常基本活动的软件,如:视频,浏览器,文本处理,电子邮件和多媒体等,对标Windows10操作系统 
服务器版
- 服务器版本用于托管网络服务器和数据库等应用程序,是专业人员使用的服务器操作系统

- 注意:
- 一般选择
LTS长期更新版,LTS为“长期支持”版本每两年在4月发布一次,LTS版本是Ubuntu的“企业级”版本,使用得最多。估计95%的Ubuntu安装得都是LTS版 - 可以在
开源镜像站点下载,如阿里开源镜像站 
- 一般选择
安装部署
- 这里博主后期有时间再写,博主这里主要写
Ubuntu在redhat系列中的不同之处
部署后的设置
设置root密码
- 由于默认的root用户没有固定的密码,则可以通过下列方法更改并切换账户
- 第一种:
huazi@ubuntu:~$ sudo passwd root #以普通账户登录后执行命令修改root初始密码
[sudo] huazi 的密码: #普通账户的密码
新的密码: #新的root密码
无效的密码: 密码少于 8 个字符
重新输入新的密码: #再输入一遍
passwd:已成功更新密码
huazi@ubuntu:~$ su -l root #切换到root账户
密码:
root@ubuntu:~#
- 第二种
huazi@ubuntu:~$ sudo bash #自动切换为root用户
关闭防火墙
root@ubuntu:~# systemctl status firewalld #查看ufw防火墙状态
Unit firewalld.service could not be found.
root@ubuntu:~# systemctl status ufw
● ufw.service - Uncomplicated firewallLoaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: >Active: active (exited) since Thu 2024-05-02 18:46:06 CST; 35min agoDocs: man:ufw(8)Main PID: 436 (code=exited, status=0/SUCCESS)CPU: 5ms5月 02 18:46:06 ubuntu systemd[1]: Starting Uncomplicated firewall...
5月 02 18:46:06 ubuntu systemd[1]: Finished Uncomplicated firewall.root@ubuntu:~# systemctl stop ufw #关闭防火墙
root@ubuntu:~# systemctl disable ufw #设置开机不启动
Synchronizing state of ufw.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable ufw
Removed /etc/systemd/system/multi-user.target.wants/ufw.service.
启用允许root进行ssh登录
root@ubuntu:~# vim /etc/ssh/sshd_config
PermitRootLogin yes #将PermitRootLogin的参数设置为yesroot@ubuntu:~# systemctl restart ssh #重启ssh服务
更改apt源
- 先确定
Ubuntu的时间版本,我这里是ubuntu 22.04 LTS - 然后到阿里云镜像开源站的
Ubuntu中选择对应的apt源 
root@ubuntu:~# vim /etc/apt/sources.listdeb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiversedeb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiversedeb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse# deb https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiversedeb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverseroot@ubuntu:~# apt update #配置完需要更新apt源
安装所需软件
root@ubuntu:~# apt install tree gcc make net-tools openvswitch-switch -yroot@ubuntu:~# apt list tree #检查是否已安装
正在列表... 完成
tree/jammy,now 2.0.2-1 amd64 [已安装]
root@ubuntu:~# apt list gcc
正在列表... 完成
gcc/jammy,now 4:11.2.0-1ubuntu1 amd64 [已安装]
gcc/jammy 4:11.2.0-1ubuntu1 i386
root@ubuntu:~# apt list make
正在列表... 完成
make/jammy,now 4.3-4.1build1 amd64 [已安装]
make/jammy 4.3-4.1build1 i386
root@ubuntu:~# apt list net-tools
正在列表... 完成
net-tools/jammy,now 1.60+git20181103.0eebece-1ubuntu5 amd64 [已安装]
net-tools/jammy 1.60+git20181103.0eebece-1ubuntu5 i386
root@ubuntu:~# apt list openvswitch-switch
正在列表... 完成
openvswitch-switch/jammy-security,jammy-updates,now 2.17.9-0ubuntu0.22.04.1 amd64 [已安装]
N: 还有 1 个版本。请使用 -a 选项来查看它(它们)。root@ubuntu:~# apt list nginx #未安装
正在列表... 完成
nginx/jammy-updates 1.18.0-6ubuntu14.4 amd64
N: 还有 2 个版本。请使用 -a 选项来查看它(它们)。
安装nginx
root@ubuntu:~# apt install nginx -y
安装apache
root@ubuntu:~# apt install lighttpd -y
网络配置
Netplan概述
Netplan:抽象网络配置生成器,是一个用于配置Linux网络的简单工具- 通过
Netplan,你只需用一个YAML文件描述每个网络接口需要配置成啥样即可,根据这个配置描述,Netplan便可帮你生成所有需要的配置,不管你选用的底层管理工具是啥,都可以生成 Netplan的特点和功能:YAML语法:Netplan使用YAML文件格式来描述网络配置信息,YAML格式旨在使文件易于编写,阅读和理解。您可以再每行结束时添加注释以方便自己和其他管理员查看文件- 多种网络选项:
Netplan支持多种网络选项,包括IP地址,子网掩码,网关,DNS设置,静态路由和DHCP客户端等。您可以根据需要选择所需的选项并将其添加到配置文件中。 - 支持多个网络接口:
Netplan支持管理多个网络接口。无论您使用有线或无线网络,或者使用虚拟网络接口,都可以在配置文件中指定各个接口的设置。 - 自动应用配置:当您修改
Netplan配置文件后,Netplan会自动将其应用到相应的网络接口上。这意味着您无需手动执行命令即可生效所做的更改。 - 兼容性:
Netplan可以与旧版网络管理工具共存,并且可以在Ubuntu16.04及更高版本上运行。如果您已经使用ifupdown或NetworkManager进行网络配置,您可以继续使用这些工具,或者将其与Netplan配置文件结合使用。
Netplan目前支持一下两种网络管理工具:NetworkManagerSystemd-networkd
- 一言以蔽之,从前你需要根据不同的管理工具编写网络配置,现在
Netplan将管理工具差异性给屏蔽了。 你只需按照Netplan规范编写YAML 配置,不管底层管理工具是啥,一份配置走天下
配置详解
配置文件
#默认配置文件:/etc/netplan/*.yaml#本机
root@ubuntu:/etc/netplan# ls
01-network-manager-all.yaml
DHCP
network:ethernets:ens33:dhcp4: trueversion: 2renderer: networkd
静态IP设置
- 注意:
netplan说明文件格式存储在下列路径下,该目录下有各种样例文件,可以提供帮助
root@ubuntu:~# cd /usr/share/doc/netplan/examples/
root@ubuntu:/usr/share/doc/netplan/examples# ls
bonding_router.yaml route_metric.yaml
bonding.yaml source_routing.yaml
bridge_vlan.yaml sriov_vlan.yaml
bridge.yaml sriov.yaml
dhcp_wired8021x.yaml static_multiaddress.yaml
dhcp.yaml static_singlenic_multiip_multigateway.yaml
direct_connect_gateway_ipv6.yaml static.yaml
direct_connect_gateway.yaml vlan.yaml
infiniband.yaml vrf.yaml
ipv6_tunnel.yaml vxlan.yaml
loopback_interface.yaml windows_dhcp_server.yaml
modem.yaml wireguard.yaml
network_manager.yaml wireless.yaml
offload.yaml wpa_enterprise.yaml
openvswitch.yaml
#静态IP范例
root@ubuntu:/usr/share/doc/netplan/examples# cat static.yaml
network:version: 2renderer: networkdethernets:enp3s0: #网卡名addresses:- 10.10.10.2/24 #静态IP地址/子网掩码nameservers:search: [mydomain, otherdomain] #域名addresses: [10.10.10.1, 1.1.1.1] #dns解析地址1,dns解析地址2routes:- to: defaultvia: 10.10.10.1 #网关地址
- 查看本机IP信息
root@ubuntu:~# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.80.137 netmask 255.255.255.0 broadcast 192.168.80.255inet6 fe80::d15c:c612:1728:5292 prefixlen 64 scopeid 0x20<link>ether 00:0c:29:7b:35:87 txqueuelen 1000 (以太网)RX packets 143547 bytes 207998539 (207.9 MB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 30913 bytes 2101187 (2.1 MB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10<host>loop txqueuelen 1000 (本地环回)RX packets 265 bytes 28871 (28.8 KB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 265 bytes 28871 (28.8 KB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0root@ubuntu:~# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.80.137 netmask 255.255.255.0 broadcast 192.168.80.255inet6 fe80::d15c:c612:1728:5292 prefixlen 64 scopeid 0x20<link>ether 00:0c:29:7b:35:87 txqueuelen 1000 (以太网)RX packets 143581 bytes 208001089 (208.0 MB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 30932 bytes 2103313 (2.1 MB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- 查看网关
root@ubuntu:~# route -n
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
0.0.0.0 192.168.80.2 0.0.0.0 UG 100 0 0 ens33
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 ens33
192.168.80.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
设置
root@ubuntu:~# vim /etc/netplan/01-network-manager-all.yaml
#清除已有内容,将静态IP范例文件内容拷贝到当前配置中,再修改,注意缩进格式network:version: 2renderer: networkdethernets:ens33:addresses:- 192.168.80.138/24nameservers:search: [mydomain, otherdomain]addresses: [114.114.114.114]routes:- to: defaultvia: 192.168.80.2root@ubuntu:~# netplan apply #重新应用#然后需要用新配置的IP地址进行ssh连接:ssh root@192.168.80.138
#或者使用nmtui进行设置静态IP地址
root@ubuntu:~# nmtui
#或者使用nmcli命令修改静态IP地址
root@ubuntu:~# nmcli connection
NAME UUID TYPE DEVICE
有线连接 1 08ae1107-7a71-328c-8f61-fb3e8abf7e95 ethernet ens33
root@ubuntu:~# nmcli connection modify 有线连接\ 1 +ipv4.addresses 192.168.80.137/24
软件安装
方法
- 使用
apt工具安装 - deb软件包安装(
dpkg) - 自己下载程序源码编译安装
apt安装软件
作用
apt(advanced package tool)是一个命令行包管理工具,适用于Ubuntu / DebianLinuxapt用于在Ubuntu / Debian系统中从命令行安装,删除,更新和升级Debian包,apt克服了在apt-get命令中注意到的问题和错误,使用apt命令时,用户必须具有sudo权限
常用命令
root@ubuntu:~# apt update #更新软件仓库信息,建议在安装或升级包之前执行该命令root@ubuntu:~# apt list #列出所有可用的软件包root@ubuntu:~# apt list 包名 #检查该包名有没有安装root@ubuntu:~# apt list --installed #只列出已安装的包root@ubuntu:~# apt list --upgradeable #只列出可升级的包root@ubuntu:~# apt install 包名 -y #安装软件包root@ubuntu:~# apt download 包名 #下载软件包但不安装root@ubuntu:~# apt remove 包名 #删除软件包root@ubuntu:~# apt upgrade #升级所有软件包root@ubuntu:~# apt install 包名 --only-upgrade #要升级特定的安装包root@ubuntu:~# apt full-upgrade #全面系统升级,请务必小心,因为它可能会删除已安装的软件包并安装更新的软件包root@ubuntu:~# apt search 包名 #搜索软件包root@ubuntu:~# apt show 包名 #查看软件包信息root@ubuntu:~# apt clean #清除apt缓存
配置apt源
- 配置文件
root@ubuntu:~# vim /etc/apt/sources.list
-
推荐的apt源
-
修改:
- 打开文件:
vim /etc/apt/sources.list - 将默认的源进行替换
- 最后需要更新软件列表
root@ubuntu:~# apt update
- 打开文件:
deb软件包安装
概念
deb包时Debian,Ubuntu等Linux发行版的软件安装包,扩展名为.deb,是类似于rpm的软件包
dpkg命令
- 格式
root@ubuntu:~# dpkg [选项] 包名
- 常用命令
root@ubuntu:~# dpkg -i 包名 #安装软件包root@ubuntu:~# dpkg -I 包名 #查看软件包的详细信息root@ubuntu:~# dpkg -c 包名 #查看软件包结构root@ubuntu:~# dpkg -r 包名 #卸载软件包
- 注意:不推荐使用
deb软件包,因为要解决软件包依赖问题,安装也比较麻烦
相关文章:
ubuntu与redhat的不同之处
华子目录 什么是ubuntu概述 ubuntu版本简介桌面版服务器版 安装部署部署后的设置设置root密码关闭防火墙启用允许root进行ssh登录更改apt源安装所需软件 安装nginx安装apache网络配置Netplan概述配置详解配置文件DHCP静态IP设置设置 软件安装方法apt安装软件作用常用命令配置ap…...
三岁孩童被家养大型犬咬伤 额部撕脱伤达10公分
近期,一名被家养大型犬咬伤了面部的3岁小朋友,在被家人紧急送来西安国际医学中心医院,通过24小时急诊门诊简单救治后,转至整形外科,由主治医师李世龙为他实施了清创及缝合手术。 “患者额部撕脱伤面积约为10公分&…...
@click=“handleClick()“不会传递默认事件参数
当你使用click"handleClick()"这种形式绑定事件处理器时,Vue会将它视为一个函数调用,而不是一个事件监听器。在这种情况下,Vue不会自动传递原生事件对象作为默认参数。 如果你想让Vue自动传递原生事件对象作为默认参数,…...
KVM安装Ubuntu24.04简要坑点以及优点
本机环境是ubuntu22.04的环境,然后是8核16线程 ssd是500的 目前对于虚拟机的选择,感觉kvm确实会更加流畅,最重要的一点是简洁,然后实际安装效果也比较的好,如果对于速度方面希望快一点,并且流畅一点的话这…...
QT_day1
#include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {//修改窗口标题this->setWindowTitle("4.6.0");//修改窗口图标this->setWindowIcon(QIcon("C:\\Users\\zj\\Desktop\\yuanshen\\icon"));//修改窗口大小this…...
AWS宣布推出Amazon Q :针对商业数据和软件开发的生成性AI助手
亚马逊网络服务(AWS)近日宣布推出了一项名为“Amazon Q”的新服务,旨在帮助企业利用生成性人工智能(AI)技术,优化工作流程和提升业务效率。这一创新平台的推出,标志着企业工作方式的又一次重大变…...
C++:多继承虚继承
在C中,虚继承(Virtual Inheritance)是一种特殊的继承方式,用于解决菱形继承(Diamond Inheritance)问题。菱形继承指的是一个类同时继承自两个或更多个具有共同基类的类,从而导致了多个实例同一个…...
Linux进程间通信
每个进程的用户空间都是独立的,不能相互访问。 所有进程的内核空间(32位系统3G-4G)都是共享的 应用场景 作为缓冲区,处理速度不同的进程之间的数据传输资源共享:多个进程之间共享同样的资源,一个进程对共享数据的修改,…...
【二叉树算法题记录】222. 完全二叉树的节点个数
题目描述 给你一棵 完全二叉树 的根节点root ,求出该树的节点个数。 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位…...
每日新闻掌握【2024年5月6日 星期一】
2024年5月06日 星期一 农历三月廿八 大公司/大事件 多个品牌黄金优惠后价格重回600元/克以下 “五一”假期期间,记者走访调研黄金消费市场发现,受国际金价回落及“五一”假期促销等多重因素影响,终端黄金价格出现了较为明显的回落。包括周大…...
谈谈Tcpserver开启多线程并发处理遇到的问题!
最近在学习最基础的socket网络编程,在Tcpserver开启多线程并发处理时遇到了一些问题! 说明 在linux以及Windows的共享文件夹进行编写的,所以代码中有的部分使用 #ifdef WIN64 ... #else ... #endif 进入正题!!&…...
618好物节不知道买什么?快收下这份好物推荐指南!
随着618好物节的临近,你是否在为选择什么产品而犹豫不决?不用担忧,我精心准备了一份购物指南,旨在帮助你发现那些性价比高、口碑爆棚的商品。无论是科技新品还是生活小物件,这份指南都能帮你快速定位到那些值得投资的好…...
Django高级表单处理与验证实战
title: Django高级表单处理与验证实战 date: 2024/5/6 20:47:15 updated: 2024/5/6 20:47:15 categories: 后端开发 tags: Django表单验证逻辑模板渲染安全措施表单测试重定向管理最佳实践 引言: 在Web应用开发中,表单是用户与应用之间进行交互的重要…...
类和对象-Python-第一部分
初识对象 使用对象组织数据 class Student:nameNonegenderNonenationalityNonenative_placeNoneageNonestu_1Student()stu_1.name"林军杰" stu_1.gender"男" stu_1.nationality"中国" stu_1.native_place"山东" stu_1.age31print(stu…...
Pytorch实现图片异常检测
图片异常检测 异常检测指的是在正常的图片中找到异常的数据,由于无法通过规则进行识别判断,这样的应用场景通常都是需要人工进行识别,比如残次品的识别,图片异常识别模型的目标是可以代替或者辅助人工进行识别异常图片。 AnoGAN…...
【NOI-题解】1586. 扫地机器人1430 - 迷宫出口1434. 数池塘(四方向)1435. 数池塘(八方向)
文章目录 一、前言二、问题问题:1586 - 扫地机器人问题:1430 - 迷宫出口问题:1434. 数池塘(四方向)问题:1435. 数池塘(八方向) 三、感谢 一、前言 本章节主要对深搜基础题目进行讲解…...
探究MySQL行格式:解析DYNAMIC与COMPACT的异同
在MySQL中,行格式对于数据存储和检索起着至关重要的作用。MySQL提供了多种行格式,其中DYNAMIC和COMPACT是两种常见的行格式。 本文将深入探讨MySQL行格式DYNAMIC和COMPACT的区别,帮助读者更好地理解它们的特点和适用场景。 1. MySQL行格式简…...
MATLAB绘制蒸汽压力和温度曲线
蒸汽压力与温度之间的具体关系公式一般采用安托因方程(Antoine Equation),用于描述纯物质的蒸汽压与温度之间的关系。安托因方程的一般形式如下: [\log_{10} P A - \frac{B}{C T}] 其中, (P) 是蒸汽压(…...
repo跟git的关系
关于repo 大都讲的太复杂了,大多是从定义角度跟命令角度去讲解,其实从现实项目使用角度而言repo很好理解. 我们都知道git是用来管理项目的,多人开发过程中git功能很好用.现在我们知道一个项目会用一个git仓库去管理,项目的开发过程中会使用git创建分支之类的来更好的维护项目代…...
Mysql 8.0 -- 最新版本安装(保姆级教程)
Mysql 8.0 -- 最新版本安装(保姆级教程) 一,下载Mysql数据库: 官网链接:https://www.mysql.com/downloads/ 二,安装Mysql: 三,找到Mysql安装目录: 找到mysql安装目录…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
