自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

肥猫警长的博客

爱唱歌的云计算工程师,技术还行,期待与大家共同交流进步。

  • 博客(91)
  • 收藏
  • 关注

原创 docker镜像的创建与dockerfile

文章目录一、docker镜像的创建1、创建镜像的方法2、基于现有镜像创建3、基于本地模板创建4、基于dockerfile创建二、Dockerfile1、概述2、Dockerfile结构3、Dockerfile镜像结构的分层4、Dockerfile操作常用的指令5、在编写Dockerfile时,要遵循的格式三、Dockerfile案例1、构建apache容器服务2、构建SSH镜像3、构建systemctl镜像一、docker镜像的创建1、创建镜像的方法创建镜像有三种方法,分别为基于已有镜像创建、基于本地

2022-01-17 10:05:42 673

原创 Docker容器网络模式与数据管理

文章目录一、Docker容器操作1、容器创建2、查看容器的运行状态3、启动容器4、创建并开启容器5、终止容器运行6、容器的进入7、复制文件到容器中/宿主机中8、容器的导出与导入9、删除容器二、Docker网络1、Docker网络实现原理2、Docker的网络模式三、网络模式详解1、host模式2、container模式3、none模式4、bridge模式5、自定义网络四、CPU资源控制1、cgroups概述2、cgroups的四大功能3、设置CPU使用率上限4、设置CPU资源占用比(设置多个容器时才有效)5

2022-01-13 08:51:14 509

原创 虚拟化与docker基础

文章目录一、虚拟化1.虚拟化概述2、虚拟化的功能3、虚拟化的三种模式2.容器与虚拟化二、Docker1、容器概述2、Docker概述3、Docker的设计宗旨4、容器与虚拟机的区别5、容器在内核中支持两种重要的技术6、Docker核心概念三、安装Docker1、环境准备2、安装依赖包3、设置阿里云镜像源4、安装Docker-CE并设置为开机自动启动四、docker镜像操作1、查看版本信息和详细内容2、搜索镜像3、获取镜像4、镜像加速下载5、查看镜像信息6、查看镜像列表7、获取镜像信息8、为镜像添加新标签9、

2022-01-10 18:30:02 865

原创 ELK日志分析(最新版)

文章目录一、ELK概述1、ELK简介2、ELK组成3、为什么要使用ELK4、完整日志系统的基本特征5、ELK的工作原理二、ELK Elasticsearch 集群部署(在Node1、Node2节点上操作)1、环境准备2、部署 Elasticsearch 软件img3、安装 Elasticsearch-head 插件img4、 ELK Logstash 部署(在 Apache 节点上操作)img5、 ELK Kiabana 部署(在 Node1 节点上操作)img6、Filebeat+ELK 部署一、ELK

2021-12-19 15:12:42 5395

原创 企业分布式存储

文章目录一、GlusterFS概述1、GlusterFS简介2、GlusterFS特点3、GlusterFS术语4、模块化堆栈式架构5、GlusterFS 工作流程6、弹性HASH算法7、GlusterFs的卷类型二、部署GlusterFs 群集三、客户端部署与测试测试总结补充:一、GlusterFS概述1、GlusterFS简介① GlusterFS是一-个开源的分布式文件系统。由存储服务器、客户端以及NFS/Samba存储网关(可选,根据需要选择使用)组成。没有元数据服务器组件,这有助于提升整

2021-12-15 16:18:43 522

原创 rsync远程同步

文章目录一、rsync二、rsync同步源三、rsync下行同步配置1、配置rsync源服务器2、发起端配置img四、rsync+inotify实时同步(上行同步)1、rsync实时同步2、Linux内核的inotify机制五、rsync+inotify实时同步(上行同步)配置1、修改rsync源服务器配置文件img2、调整inotify内核参数img3、安装inotify-toolsimg4、执行inotifywait命令进行监控5、编写触发式脚本(客户端)6、查看上行结果六、使用rsync来实现快速删除

2021-12-13 11:18:39 426

原创 Redis高可用、持久化及性能管理

文章目录一、Redis高可用1、概述2、高可用技术二、Redis持久化1、持久化的功能2、两种持久化方式三、RDB持久化1、概述2、触发条件(1)手动触发(2)自动触发(3)其他自动触发机制3、执行流程4、启动时加载四、AOF 持久化1、概述2、开启AOF3、执行流程4、命令追加(append)5、文件写入(write)和文件同步(sync)6、文件重写(rewrite)7、文件重写的流程8、启动时加载五、RDB和AOF的优缺点1、RDB持久化2、AOF持久化六、Redis的性能管理1、查看Redis内存使

2021-12-09 16:39:30 670

原创 NoSQL值Redis配置与优化

文章目录一、关系数据库与非关系型数据库1、关系型数据库2、非关系型数据库3、关系数据库与非关系型数据库区别二、redis1、redis简介2、redis的优点3、Memcached与Redis的区别4、redis速度快的原因三、redis安装部署1、关闭防火墙和安全功能,下载依赖包2、解压安装包,编译安装3、把redis的可执行程序文件放入路径环境变量的目录便于系统识别4、当install_server.sh 脚本运行完毕,redis服务就已经启动,默认监听端口为63795、redis服务控制6、修改配置/

2021-12-08 17:32:55 830

原创 MHA高可用配置及故障切换

主要内容:包含了mysql的MHA架构的内容,以及实验的内容。

2021-12-06 18:40:17 429

原创 Mysql主从复制与读写分离

文章目录一、案例概述二、mysql主从复制1、mysql的复制类型2、mysql主从复制的工作原理2.1**主从复制相关线程**2.2 跟复制功能相关的文件:2.3 MySQL 主从复制延迟三、部署主从服务器四、mysql读写分离1、mysql读写分离原理2、目前较为常见的两种mysql两种读写分离方式五、读写分离实验部署1、Amoeba服务器配置(192.168.142.6)2、客户端测试(192.168.142.10)六、主从复制与读写分离会出现的问题1、主从复制慢(延迟)有哪些可能2、一般Slave_

2021-12-05 16:11:59 1224

原创 MySQL高阶语句

文章目录第一部分一、select——显示表格中一个或数个栏位的所有资料二、distinct:不显示重复的资料三、where——有条件查询四、and or——且 或五、in——显示已知的值的资料六、between——显示两个值范围的资料七、通配符八、like——匹配一个模式来找出我们要的资料九、order by——按关键字排序十、函数1、数学函数2、聚合函数3、字符串函数十一、group by十二、having——用来过滤由group by语句返回的记录集十三、别名——栏位别名、表格别名十四、子查询——连接表

2021-11-30 20:12:03 1059

原创 MySQL日志管理、备份与恢复

一、MySQL日志管理MySQL的日志默认保存位置为 /usr/local/mysql/data/在/etc/my.cnf配置文件中的 [mysqld] 中进行日志的路径配置1、错误日志#用于记录 mysql 启动、停止或运行时产生的错误信息,默认已开启log-error=/usr/local/mysql/data/mysql_error.log(指定日志的保存位置和文件名)2、通用查询日志#用来记录mysql的所有连接和语句,默认是关闭的general_log=ONgeneral_l

2021-11-29 19:57:25 1389 1

原创 MySQL事务和存储引擎

文章目录一、事务1、事务的概念2、事务的ACID特点3、事务间的4个影响(间接)4、事务间的四大隔离5、事务控制语句二、存储引擎三、MyISAM存储引擎1、简介2、MyISAM的特点3、MyISAM支持3种不同的存储格式4、MyISAM适用的生产场景四、Innodb存储引擎1、Innodb特点2、Innodb在磁盘上存储成三个文件3、Innodb适用生产场景五、存储引擎具体操作1、查看系统支持的存储引擎2、查看表使用的存储引擎3、修改存储引擎六、总结1、innodb和myisam特点2、innodb和myi

2021-11-28 18:59:41 447

原创 MySQL 索引

文章目录一、MySQL 索引1、索引的概念2、索引的作用3、索引的副作用4、创建索引的原则依据二、索引的分类和创建1、普通索引,最基本的索引类型,没有唯一性之类的限制2、唯一索引3、主键索引4、组合索引5、全文索引6、查看索引一、MySQL 索引1、索引的概念(1)索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值得数据所在行的物理地址(类似于C语音的链表通过指针指向数据记录的内存地址)(2)使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地址然后访问响应

2021-11-28 18:54:41 416

原创 MySQL数据表高级操作及用户权限

文章目录一、数据表高级操作1、克隆表,将数据表的数据记录生成到新的表中2、清空表,删除表内的所有数据3、创建临时表4、创建外键约束,保证数据的完整性和一致性5、查看或者删除外键约束二、数据库用户管理1、新建用户2、查看用户信息3、重命名用户4、删除用户5、修改当前登录用户密码6、修改其他用户密码7、忘记root密码的解决办法三、数据库用户授权1、授予权限2、权限分类3、查看权限4、删除权限一、数据表高级操作1、克隆表,将数据表的数据记录生成到新的表中方法一:create table test1 li

2021-11-28 18:51:25 589

原创 MySQL数据库基本概念及管理

目录数据库基本概念一、数据库的基本概念1、数据(data)2、表3、数据库4、数据库的管理系统(DBMS)5、数据库系统二、数据库系统发展史三、当今主流数据库介绍四、关系数据库1、关系数据库简介2、结构3、存储结构4、常用关系数据库五、非关系数据库介绍六、Mysql数据库介绍1、特点2、MySQL商业版与社区版3、MySQL产品阵营七、MySQL数据库自动补全命令的三种方式MySQL数据库管理一、MySQL数据库管理1、常用的数据类型2、SQL语句二、MySQL数据库(增删改查)1、查看数据库结构3、管理表

2021-11-24 19:36:34 1034 1

原创 Haproxy搭建Web群集

一、Haproxy调度算法1、 常见的web集群调度器(1)目前常见的web集群调度器分为软件和硬件软件通常使用开源的LVS、 Haproxy、Nginx(2)LVS性能最好,但是搭建相对复杂;Nginx的upstream模块支持群集功能,但是对群集节点健康检查功能不强,高并发性能没有Haproxy好(3)硬件一般使用比较多的是F5,也有很多人使用国内的一些产品,如梭子鱼、绿盟等2、Hapeoxy应用分析LVS在企业应用中抗负载能力很强,但存在不足LVS不支持正则处理,不能实现动静分离,对于

2021-11-22 15:23:54 2852

原创 LVS-DR概述及搭建,keepalived配置

目录LVS-DR概述及搭建一、LVS-DR1、数据包流向分析2、LVS-DR中的ARP问题3、DR模式的特点二、LVS-DR集群构建1、案例环境2、配置负载调度器:192.168.142.43、署NFS服务器:192.168.142.104、Web节点服务器1:192.168.142.55、Web节点服务器2:192.168.142.66、客户机访问测试LVS +Keepalived群集一、Keepalived1、应用环境2、Keepalived工具介绍3、keepalived工作原理剖析4、Keepali

2021-11-20 15:03:30 3104

原创 LVS集群(负载均衡及NAT部署)

目录一、企业群集应用1、什么是集群2、集群的用途3、企业集群的分类二、负载均衡群集架构1、负载均衡的结构2、负载均衡群集工作模式3、LVS的负载调度算法三、ipvsadm1、调用ip_vs模块2、ip_vs选项说明四、LVS-NAT部署1、需求2、部署NFS服务器:192.168.142.103、部署Web节点服务器1:192.168.142.54、部署Web节点服务器2:192.168.142.65、配置负载调度器6、客户机访问测试一、企业群集应用1、什么是集群(1)Cluster,群集,集群(2

2021-11-17 20:00:09 1136

原创 Tomcat从精通到入门2---多实例部署和负载均衡

一、Tomcat多实例部署1、关闭防火墙和selinuxsystemctl stop firewalldsetenforce 0systemctl disable firewalld2、安装JDK并设置JDK环境变量cd /optrpm -qpl jdk-8u201-linux-x64.rpmrpm -ivh jdk-8u201-linux-x64.rpmjava -version vim /etc/profile.d/java.sh export JAVA_HOME=/usr

2021-11-16 15:46:32 4274

原创 Tomcat从精通到入门

目录一、Tomcat介绍1、概述2、Tomcat的构成组件3、Tomcat顶层架构4、Tomcat请求过程二、Tomcat服务部署1、关闭防火墙,将安装Tomcat所需要软件包传到/opt目录下2、安装JDK环境3、设置JDK环境变量4、安装启动Tomcat5、优化tomcat启动速度三、tomcat虚拟主机配置1、创建项目目录和文件2、修改Tomcat主配置文件3、浏览器验证四、Tomcat优化一、Tomcat介绍1、概述(1)Tomcat是Java语言开发的,Tomcat服务器时一个免费的开放源代

2021-11-15 16:58:11 3207

原创 Nginx重写rewrite

目录一、常用的Nginx正则表达式二、location匹配三、rewrite重写四、rewrite跳转一、常用的Nginx正则表达式^匹配输入字符串的起始位置$匹配输入字符串的结束为止*匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll”等+匹配前面的字符一次或多次。如“ol+”能匹配“ol”及“oll”,但不能匹配“o”?匹配前面的字符零次或一次,例如“do(es)?”能匹配“do”或者“does”,“?”等效于“{0,1}”.

2021-11-14 16:12:06 2535

原创 Nginx优化和防盗链

目录一、隐藏版本号二、修改用户与组三、缓存时间四、日志切割五、连接超时六、更改进程数七、配置网页压缩一、隐藏版本号可以使用Fiddler 工具抓取数据包,查看Nginx版本也可以在centos中使用命令 curl -I http://192.168.142.3显示响应报文首部信息,方法一:修改配置文件方式vim /usr/local/nginx/conf/nginx.confhttp {include mime.types;default_type application/octet-s

2021-11-14 16:10:05 2038

原创 手动部署LNMP环境

目录前提条件背景信息配置过程步骤一:准备编译环境步骤二:安装Nginx步骤三:安装MySQL步骤四:安装PHP步骤五:配置Nginx步骤六:配置MySQL步骤七:配置PHP步骤八:测试访问LNMP平台后续步骤常见问题Nginx是一款小巧而高效的Web服务器软件,可帮您在Linux系统下快速方便地搭建出LNMP Web服务环境。本教程介绍如何手动在ECS实例上搭建LNMP环境,其中LNMP分别代表Linux、Nginx、MySQL和PHP。前提条件已创建ECS实例并为实例分配公网IP地址。已在

2021-11-13 22:21:00 2822

原创 Nginx从入门到精通2

目录反向一、代理介绍二、应用场景三、反向代理原理四、反向代理实现下载限速一、限速介绍二、应用场景三、限速原理四、限速实现Nginx url 重写一、URL重写介绍二、应用场景三、URL重写原理四、URL重写URL 模块语法set指令 自定义变量if 指令 负责判断return 指令 定义返回数据break 指令 停止执行当前虚拟主机的后续rewrite指令集rewrite指令 实现重写urlNginx优化一、调优的必要性二、调优的维度和见解分歧Nginx跳跃1、并发优化2、长连接3、压缩4、静态缓存反向

2021-11-07 08:58:13 2014 1

原创 Nginx从入门到精通

Nginx介绍一、Nginx介绍Nginx(“engine x”)是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。和apache一样,都是web服务器软件,因为其性能优异,所以被广大运维喜欢。又因为nginx是一个轻量级的web服务器,相比apache来说资源消耗更低。延伸版本:tengine(淘宝)、openresrt(章亦春)等http://nginx.org 官网http://www.nginx

2021-11-03 19:38:12 2263

原创 LAMP搭建和配置

LAMP搭建和配置LAMP是由Linux, Apache, MySQL, PHP组成的,即把Apache、MySQL以及PHP安装在Linux系统上,组成一个环境来运行PHP的脚本语言。Apache是最常用的Web服务软件,而MySQL是比较小型的数据库软件。三个角色可以安装在一台机器上,也可以分开(但httpd和php要在一起的)为什么需要LAMP?手动逐个编译安装各个组件,需要输入各种命令,且有可能会中途出错。对于想要成功搭建 LAMP 建站环境来说,可以节约大量时间和精力。LAMP 有什么

2021-11-03 19:35:38 2710

原创 linux防火墙(firewalld和iptables)

这里写目录标题1安全技术和防火墙1.1 安全技术1.2 防火墙的分类2.Linux 防火墙的基本认识2.1Netfilter2.2防火墙工具介绍2.2.1 iptables2.2.2 firewalld2.2.3 nftables2.3 netfilter中五个勾子函数和报文流向3.firewalld服务3.1.1firewalld 介绍3.1.2命令行配置3.1.2.1基础命令3.1.2.2查看现有firewall设置3.1.2.3设置查看默认区3.1.2.4添加源地址(网段)及端口 及服务3.1.3其它

2021-11-01 14:28:56 4757

原创 shell免交互操作

前段时间写了shell脚本的操作,后台收到一些小伙伴反馈,都说shell比python简单,但是其实现在python更方便一些,当然相对于linux系统,shell还是更方便一些。本次更新补充了here Document和expect的概念,大家加油。目录1.Here Document2.expect(1)脚本解释器(2)spawn(3)expect(4)send(5)结束符(6)set(7)exp_continue(8)send_user(9)接收参数1.Here Document定义使用I/O重

2021-10-28 16:10:49 2630

原创 shell函数及正则表达式

目录shell函数一、函数1.1、函数介绍1.2、函数定义1.3、函数调用流程控制-case语句一、条件循环语句-case1.1、case介绍1.2、case语法二、案例正则表达式正则表达式1、正则表达式介绍2、正则表达式特殊字符3、正则表达式POSIX字符shell对文件的操作一、sed介绍二、sed语法2.1)sed内部命令说明2.2)命令选项说明2.3)标志三、练习案例shell数据筛选与处理shell对输出流的处理-awk1、awk介绍2、awk语法3、awk基本应用3.1)awk对字段(列)的提取

2021-10-25 19:24:10 3139 2

原创 shell 数组以及循环结构

目录shell 数组详解一、数组介绍二、数组定义三、数组赋值方式四、数组取值五、关联数组5.1 定义管理数组5.2关联数组赋值管理数组取值六、课堂练习2.1 写一个监控CPU 平均负载值的脚本shell流程控制-if判断语句一、if介绍二、单if语法三、if…else语句四、if…elif…else五、练习案例六、if嵌套if6.1、使用if嵌套if的方式判断两个整数的关系6.2、写一个nginx安装初始化脚本七、if高级用法7.1、条件符号使用双圆括号,可以在条件中植入数学表达式 if (())7.2、使

2021-10-25 19:18:12 6611

原创 shell运算实战案例——点餐系统

shell运算实战案例-KFC点餐系统写一个餐厅点餐程序案例需求写一个程序,模拟KFC点餐系统,要求有以下功能:1、点餐功能2、结算功能3、打印流水单案例步骤1、交互点餐2、结账收银3、打印流水单给客户案例代码#!/bin/bash# #Author:##Release: #Description: #1)录入单价HBB=19.8JC=12.3KL=9.9#2)定义输出cat <<EOF welcome to restaurant

2021-10-19 19:41:21 3269

原创 shell基础

目录shell脚本介绍一、shell脚本是什么二、为什么要学shell,而不是其他计算机语言三、学习这门课程的优势四、学了能干什么五、学习什么内容六、学习的技巧七、成长路径八、学习环境编程语言与shell脚本一、编程语言介绍二、shell介绍1、shell介绍2、bash shell基本特性3、shell脚本介绍4、shell脚本语法shell变量详解一、变量介绍二、变量定义2.1、什么时候需要定义变量?2.2、定义一个变量2.3、取消变量 unset2.4、 有类型变量 declare三、变量分类3.1、

2021-10-18 22:12:16 3230

原创 Linux——PXE批量网络装机

目录1.什么是pxe1实现的硬件条件2.系统装机的三种引导方式3.系统安装过程2.实现过程讲解3.搭建过程中服务详解3.1TFTP服务3.2 vsftp:安装系统镜像文件获取方式3.3 syslinux3.4 DHCP服务4.pxe 优点5.操作过程6.kickstart 无人值守安装1.什么是pxePXE是它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。pxe是通过网卡引导启动1实现的硬件条件

2021-10-18 12:18:26 3256

原创 Python模块、包与面向对象综合案例

一、Python内置模块1、什么是Python模块Python 模块(Module),是一个Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块能定义函数,类和变量,模块里也能包含可执行的代码。2、模块的分类在Python中,模块通常可以分为两大类:内置模块(目前使用的) 和 自定义模块3、模块的导入方式☆ import 模块名☆ from 模块名 import 功能名☆ from 模块名 import *☆ import 模块名 as 别名☆ f

2021-10-13 10:12:41 3108 2

原创 Python面向对象进阶与异常、模块以及包管理

这一篇是面向对象的进阶部分,主要还是面向对象的封装,继承,多态方面的讲解,后面的部分是讲解python异常和模块以及包的部分。目录一、Python中的继承1、什么是继承2、继承的基本语法3、与继承相关的几个概念4、单继承5、单继承特性:传递性6、编写面向对象代码中的常见问题7、多继承8、子类扩展:重写父类属性和方法9、super()调用父类属性和方法10、MRO属性或MRO方法:方法解析顺序二、Python中多态1、什么是多态2、多态原理图3、多态代码实现三、面向对象其他特性1、类属性2、类属性代码实现3

2021-10-13 09:56:44 2897

原创 python异常类型大全

异常类型:异常名称描述BaseException所有异常的基类SystemExit解释器请求退出KeyboardInterrupt用户中断执行(通常是输入^C)Exception常规错误的基类StopIteration迭代器没有更多的值GeneratorExit生成器(generator)发生异常来通知退出SystemExitPython 解释器请求退出StandardError所有的内建标准异常的基类Arithmetic

2021-10-13 09:46:15 4865

原创 Python文件操作与面向对象

今天讲的内容比较重要,众所周知python就是面向对象的编程语言,几乎所有的都是对象,当然并不是那个“对象”,我这边写的很详细,大家应该可以看的懂。目录一、文件备份案例1、实例代码2、查漏补缺二、文件和文件夹操作1、os模块2、与文件操作相关方法3、与文件夹操作相关操作4、文件夹删除补充(递归删除、慎重!)5、普及路径的小知识三、文件操作综合案例1、需求分析2、编写实例代码四、面向对象编程思想1、什么是面向过程2、什么是面向对象3、举个栗子:使用面向对象实现报名系统开发☆ 第一步:分析哪些动作是由哪些实体

2021-10-13 09:42:52 2897

原创 Python函数进阶与文件操作

目录一、作业回顾1、格式化输出与%百分号2、字符串切片3、字典的定义二、引用变量与可变、非可变类型1、引用变量☆ 聊聊变量在内存底层的存储形式☆ 如何验证Python中变量的引用关系☆ 把一个变量赋予给另外一个变量的影响2、Python中可变和非可变数据类型☆ 问题1:在Python中一共有几种数据类型?☆ 问题2:如何判断一个数据类型是可变类型还是非可变类型?3、可变类型与非可变类型在函数中的应用☆ 可变类型☆ 不可变类型三、函数递归(重点难点)1、前言2、递推算法3、什么是递归算法4、递归两种重要的元素

2021-10-12 13:51:48 3134

原创 Python中的函数

今天天气有些回暖,我们讲一下python的函数,逻辑性比较强,大家看的仔细点,然后练习的时候注意些别打错了。一、作业回顾需求:编写一段Python代码,生成一个随机的4位验证码提前:定义一个字符串str1 = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"编写Python代码:① 思考:如果只生成4个字符的验证码,如何只保证从字符串中读取4次(while循环、for循环)② 思考:如果随机的从str1字符串中读取4个字符?

2021-10-12 10:13:49 3551

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除