Linux之基于Centos系统安装Redis、MySQL、Nginx

news/2024/5/6 16:34:41/文章来源:https://blog.csdn.net/Linuxhus/article/details/128188787

一. Redis的安装

1. 准备

(1). 宿主机:centos 8.0

(2). Redis源码:【压缩包: redis-5.0.0.tar.gz】 需要自行编译。 (PS:这个压缩包可以直接Centos系统中在线下载 或者去Redis官网先下载,然后copy到Centos系统中)

下载地址:

  官网:https://redis.io/

  中文版:http://www.redis.cn/

注:Redis的安装需要下载源码,自行准备环境,进行编译安装。

(3). gcc环境:redis是C语言开发的,安装redis需要先将官网下载的源码进行编译,编译依赖 gcc 环境。

2. 安装步骤

(1). 安装gcc环境

 通过指令【yum install gcc-c++】安装gcc环境,安装过程中需要两次输入y,分别是确认下载和确认安装。

两次确认:

 

最终安装成功:

 

(2). 安装Redis

A. 去Redis官网下载压缩包,然后Copy到Centos宿主机中,下载地址为:http://download.redis.io/releases/ ,这里我们以 【5.0.0】版本为例进行演示。

 PS: 这里我们直接在Linux系统中在线下载压缩包,运行指令:【wget http://download.redis.io/releases/redis-5.0.0.tar.gz

 B. 解压到当前目录,运行下面指令 ,解压后的文件如下:

【tar -zxvf redis-5.0.0.tar.gz】

 C. 切换到redis目录,运行make指令进行编译 。

【cd redis-5.0.0/】

【make】 (ps:make指令可能需要安装,根据提示,输入y确认安装即可)

 D. 安装redis到指令目录

【cd redis-5.0.0/】

【make PREFIX=/usr/local/redis install 】

PS:make install安装完成后,会在/usr/local/redis/bin目录下生成下面几个可执行文件,它们的作用分别是:

  redis-server:Redis服务器端启动程序

  redis-cli:Redis客户端操作工具。也可以用telnet根据其纯文本协议来操作

  redis-benchmark:Redis性能测试工具

  redis-check-aof:数据修复工具

  redis-check-dump:检查导出工具

 

(3). 配置Redis

  进入redis原先的解压目录,把里面的配置文件 【redis.conf】 拷贝到 /usr/local/redis/bin 目录下。

【cd redis-5.0.0/】

【cp redis.conf /usr/local/redis/bin】

 

(4). 启动Redis

 A. 进入到 /usr/local/redis/bin 安装目录, 【cd /usr/local/redis/bin】

 B. 修改redis.conf,把daemonize no 改为daemonize yes,改为守护进程,即后台程序启动,否则关闭窗口redis服务就关闭了 (可选)

 C. 运行指令【./redis-server redis.conf】 进行启动,如下图表示启动成功。PS: ./表示当前目录

(5). 复制一个窗口,启动链接客户端 【./redis-cli】,可以进行redis操作。

 

(6). 关闭redis服务【./redis-cli shutdown】, 如果有密码,需要【./redis-cli -a 123456 shutdown】

进行链接,连接失败;重新启动redis服务【./redis-server redis.conf】,进行链接,链接成功。

PS:也可以直接通过【ps -ef|grep redids】获取redis服务的进程号,然后 【kill 进程号】的方式强制关掉redis服务。

更多C++后台开发技术点知识内容包括C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,音视频开发,Linux内核,TCP/IP,协程,DPDK多个高级知识点。

C/C++Linux服务器开发高级架构师/C++后台开发架构师​免费学习地址

【文章福利】另外还整理一些C++后台开发架构师 相关学习资料,面试题,教学视频,以及学习路线图,免费分享有需要的可以点击领取

如下图:

3. 测试

如何在外部链接linux上的redis?

(1). 将 bind 127.0.0.1 注释掉。

(2). 关闭保护模式,即将 protected-mode 改为 no。

PS:以上两个指令执行完成后,要重启一下redis服务。

(3).首先需要在centos宿主机上关闭防火墙,从而外部可以访问redis的6379端口。

#添加6379端口永久开放 sudo firewall-cmd --add-port=6379/tcp --permanent #重启防火墙 firewall-cmd --reload

(4). 使用客户端工具进行连接,连接成功。

4. 其它配置和指令

(1). 设置密码

 默认链接redis是没有密码的,我们通过修改 redis.conf 文件中 requirepass 节点,来设置密码,如下图:

默认:

 

修改密码为123456:

 

重新链接:

 

在本地电脑上通过客户端连接: 【 redis-cli -h 192.168.137.201 -p 6379 -a 123456】

 

(2). 改为守护进程

 修改redis.conf,把daemonize no 改为daemonize yes,改为守护进程,即后台程序启动,否则关闭窗口redis服务就关闭了

参考文档:https://blog.csdn.net/lc1010078424/article/details/78295482 (添加服务)

https://blog.csdn.net/weixin_40605573/article/details/89324038

二. MySQL的安装

1. 准备

(1). 宿主机:centos8.0

(2). MySQL安装包:mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar (这里安装的是5.7版本)

PS:这里使用的安装包是针对centos系统特制的RPM包,通过RPM相关指令进行安装,当然也可以通过其他类型的安装包进行编译安装。

下载地址:https://dev.mysql.com/downloads/mysql/ ,这里演示的是下载整个压缩包,解压后有很多组件的rmp包,当然我们也可以根据需要直接下载对应的组件进行安装,比如我只下载Server的rpm包。

 

2. 安装步骤

前提:删除一下系统自带的mysql

(1). 把安装包copy到centos的宿主机中

 (2). 在当前目录下进行解压,指令如下

【tar -xvf mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar】解压出来一堆包,我们根据需要安装即可。

 (3). 安装client端 和 server 端

经验:server需要依赖client端,所以server端最后安装,client端还需要依赖common和libs,而且client还需要libncurses和libtinfo相关,所以我们在rmp包的根目录下运行指令,严格按照下面的顺序进行。

 【rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm】

 【rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm】

 【yum install libncurses* -y】

 【yum install libtinfo* -y】

 【rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm】

 【rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm】

截止此处全部安装完成。

(4). 启动服务并查看状态

 A. 启动服务: 【systemctl start mysqld】

 B. 查看状态:【systemctl status mysqld】

 (5). 必备的配置

 A. 修改密码策略,否则无法随心所以的修改密码

 找到mysql的配置文件,位于 /etc/my.conf , 在这个配置文件里,还能看见其它几个配置的路径,如下图,然后添加下面代码,修改完后,重启一下mysql服务【systemctl restart mysqld】

注:以下两行代码任意一行都可以,可以直接关闭密码策略即可。

#添加validate_password_policy配置 选择0(LOW)1(MEDIUM)2(STRONG)其中一种 validate_password_policy=0 #关闭密码策略 validate_password = off

 B. 查看随机密码

 默认root账号会生成一个随机密码,通过指令【grep "password" /var/log/mysqld.log 】查看,如下图,密码为: wIsu.rk_d74c

 C. 修改密码(这里改为123456)

  使用内置客户端进行登录,【mysql -uroot -p】,然后输入上面密码:wIsu.rk_d74c ,如下图说明登录成功。 或者直接输入指令:【mysql -uroot -pwIsu.rk_d74c】

  将root账号的密码改为:123456,指令为【set password=password('123456');注意在mysql中的指令结尾必须有分号!!

或者运行指令:【ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';】进行密码修改

  输入指令【exit;】,退出

 

  重新输入指令【mysql -uroot -p123456】,如下图:登录成功

 D. 设置允许远程访问

 ①. 运行下面指令,运行所有ip用root账号,密码为123456进行访问mysql。

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges; 

  注:上述指令的本质是在User表中增加了一条新的记录,Host设置为%,代表运行所有客户端访问,实际上可以直接去User表中把原先内置的root用户的Host字段由Localhost改为%即可。

 ②. 查看防火墙状态,开发3306端口,或者直接关闭防火墙。

#查看防火墙状态
service firewalld status #方案1,开放3306端口,并重启
sudo firewall-cmd --add-port=3306/tcp --permanent
#重启防火墙
firewall-cmd --reload#方案2:直接关闭防火墙
service firewalld stop 

(6). 测试

 使用客户端远程连接,如下图,连接成功。

(7). 指令总结

【systemctl status mysqld】 查看mysql状态

【systemctl stop mysqld 】 关闭mysql服务

【systemctl start mysqld】 开启mysql服务

【systemctl restart mysqld】 重启服务

3.其它配置指令说明

(1). 授权远程访问详解

方法1:授权法

-- 允许特定ip访问
grant all privileges on *.* to 'root'@'192.168.137.202'identified by '123' with grant option;--允许所有ip访问
grant all privileges on *.* to 'root'@'%' identified by '123' with grant option;--执行完上述后,都要刷新生效
flush privileges; 

 说明:以上指令都是对root账号授权远程访问,登录密码为:123,特别注意这个密码可以和 root本来server端不一样,比如:本来server端root密码为123456,这里远程授权设置的是123,那么远程客户端登录就只能使用123密码,使用123456密码无法连接;通过set password把root的服务密码改为12345678,不影响远程授权登录,远程客户端仍然可以通过123进行访问。

实质:上述操作本质上是在mysql中自带的一个mysql库中user表中插入了一条记录,也就是在User表中对应了多个root账户,实际上不建议这样做,直接把原先的root对应Host改为%即可。如下图:

方法2:直接操作mysql下的user表

--可以更新字段
--特定ip
update user set host = '192.168.1.49' where user = 'root'; 
--所有ip
update user set host = '%' where user = 'root'; --也可以直接插入一条新纪录 
--刷新生效
flush privileges; 

说明:上述更新字段的那种方式远程登录使用的密码为root自身server的密码,也可以插入一条记录,可以使用一个新的密码,与root原来server端密码不同。

(2). 配置字符编码

 注意:安装完mysql后,一定要修改编码,从mysql5.7开始,将编码都改为utf8mb4。

 连接上mysql,输入指令【show variables like '%character%';】 ,查看原来的各种编码,如下图,这里我们把 character_set_server 也改成utf8,否则容易乱码。

 

 修改 /etc/my.cnf, 增加下面代码,然后重启mysql服务 【systemctl restart mysqld】,重新查看编码,设置成功。

[client]
default-character-set=utf8mb4[mysql]
default-character-set=utf8mb4[mysqld]
# 设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'
init_connect='SET collation_connection = utf8mb4_general_ci'# 数据库默认字符集
character-set-server=utf8mb4#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server=utf8mb4_general_ci

 查看数据库编码,如下图,修改成功。【show variables like '%character%';】

(3). 忘记root密码怎么办?

详见:https://www.cnblogs.com/yaopengfei/p/13798785.html

三. Nginx的安装

1.准备

(1). 宿主机:centos 8.0

(2). Nginx源码:需要去官网下载源码copy到centos系统中,自行编译安装。这里使用【nginx 1.19.3】版本。

下载地址:http://www.nginx.org/

 

(3). 编译Nginx所需要的的环境:

 A. gcc环境:因为是C语言开发的。

 B. pcre: 是一个 Perl 库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库。

 注:pcre-devel 是使用 pcre 开发的一个二次开发库,nginx 也需要此库。

 C. zlib:zlib库提供了很多种压缩和解压缩的方式,nginx 使用 zlib 对 http 包的内容进行 gzip,所以需要在 linux 上安装 zlib 库。

 D. OpenSSL: 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。nginx 不仅支持 http 协议,还支持 https(即在 ssl 协议上传输 http),所以需要在 linux安装 openssl 库。

2. 安装步骤

(1). 安装编译所需的环境

 A. 【yum install -y gcc-c++】

  图如上面redis安装一样。

 B.【yum install -y pcre pcre-devel】

 C. 【yum install -y zlib zlib-devel】

 D. 【yum install -y openssl openssl-devel】

 

(2). 将下载好的Nginx压缩包上传到Centos的工作目录下,并进行解压缩 【tar -zxvf nginx-1.19.3.tar.gz】,解压后如下图:

(3). 进入nginx-1.19.3目录 使用 configure 命令创建1个 MakeFile 文件.

【cd nginx-1.19.3/】,然后运行下面指令,直接copy进去,敲击回车,执行即可

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi

执行完成后,nginx目录下多了一个MakeFile文件

 

PS:代码解释

----  知识点小贴士 ----Makefile是一种配置文件, Makefile 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,
哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。----  知识点小贴士  ---
./configure \
--prefix=/usr \                                                           指向安装目录
--sbin-path=/usr/sbin/nginx \                                         指向(执行)程序文件(nginx)
--conf-path=/etc/nginx/nginx.conf \                                  指向配置文件
--error-log-path=/var/log/nginx/error.log \                         指向log
--http-log-path=/var/log/nginx/access.log \                        指向http-log
--pid-path=/var/run/nginx/nginx.pid \                               指向pid
--lock-path=/var/lock/nginx.lock \                                 (安装文件锁定,防止安装文件被别人利用,或自己误操作。)
--user=nginx \
--group=nginx \
--with-http_ssl_module \                                         启用ngx_http_ssl_module支持(使支持https请求,需已安装openssl)
--with-http_flv_module \                                         启用ngx_http_flv_module支持(提供寻求内存使用基于时间的偏移量文件)
--with-http_stub_status_module \                             启用ngx_http_stub_status_module支持(获取nginx自上次启动以来的工作状态)
--with-http_gzip_static_module \                           启用ngx_http_gzip_static_module支持(在线实时压缩输出数据流)
--http-client-body-temp-path=/var/tmp/nginx/client/ \             设定http客户端请求临时文件路径
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \                 设定http代理临时文件路径
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \                 设定http fastcgi临时文件路径
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \                  设定http uwsgi临时文件路径
--http-scgi-temp-path=/var/tmp/nginx/scgi \                   设定http scgi临时文件路径
--with-pcre 启用pcre库

(4). 在nginx-1.19.3目录下,执行 【make】指令,进行编译。

(5). 安装Nginx(指定安装路径)

 在nginx-1.19.3目录下执行下面的安装指令

make PREFIX=/usr/local/nginx install

如下图:

(6). 启动前准备

A. 启动 nginx 之前,上边MakeFile温江将临时文件目录指定为/var/temp/nginx/client, 需要在/var 下创建此目录

mkdir /var/temp/nginx/client -p

B. 进入到Nginx安装目录下的sbin命令目录下

cd /usr/local/nginx/sbin

(7). 启动

./nginx

如图:

 

(8). 关闭防火墙或者开放80端口

#添加80端口永久开放 sudo firewall-cmd --add-port=80/tcp --permanent #重启防火墙 firewall-cmd --reload

(9). 其它指令

A. 查看nginx进程 【ps aux|grep nginx】

 

B. 关闭Nginx

./nginx -s stop #或 ./nginx -s quit

C. 重启nginx

./nginx -s reload

3. 测试

访问默认的80端口,输入:http://192.168.137.201

4. 常见错误处理

(1). 启动nginx的时候报错,如下图,缺少文件了。

解决方案:到对应目录下创建相应文件即可。

 

原文链接:第六节:Linux之基于Centos系统安装Redis、MySQL、Nginx - Yaopengfei - 博客园

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络编程之NIO 基础

一. NIO 基础 non-blocking io 非阻塞 IO 1. 三大组件 1.1 Channel & Buffer channel 有一点类似于 stream,它就是读写数据的双向通道,可以从 channel 将数据读入 buffer,也可以将 buffer 的数据写入 channel,而之前的 st…

Qt-FFmpeg开发-打开本地摄像头(6)

Qt-FFmpeg开发-打开本地摄像头【软解码 OpenGL显示YUV】 文章目录Qt-FFmpeg开发-打开本地摄像头【软解码 OpenGL显示YUV】1、概述2、实现效果3、FFmpeg打开摄像头解码流程4、查询可用摄像头5、设置摄像头打开参数6、主要代码6.1 解码代码5.2 OpenGL显示RGB图像代码7、完整源代码…

【前端】面试题1~5

目录 一、说一说cookie、sessionStorage和localStorage 区别? 1、相同点 2、区别 二、说一说JS数据类型有哪些,区别是什么? 🍂 1、数据类型 🍂 2、数据类型区别 🍂 3、注意 🍂 4、总结 三、说一说…

企业子网划分详解

一、IP协议 1、IP协议简介 IP协议是TCP/IP协议族的基石,它为上层提供无状态、无连接、不可靠的服务,也是Socket网络编程的基础之一。 IP协议特点: 无状态:指IP通信双方不同步传输数据的状态信息,因此所有IP数据报的发送,传输,接收都是相互独立的。这种服务最大缺点是…

html+css鼠标悬停发光按钮![HTML鼠标悬停的代码]使用HTML + CSS实现鼠标悬停的一些奇幻效果!

源码如下: <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title></title> <style> *{ /* 初始化 清除页面元素得内外边距 */ paddin…

Python开发6年,整理的《Python从入门到精通学习笔记》免费下载

前言 首先明确一点&#xff1a;为什么要学习python&#xff1f; 我说几个最主要的。 1.简单易学&#xff0c;入门友好 python其实就是英文句子&#xff0c;你只要能够认识基本的英文单词&#xff0c;你就可以非常熟练地使用python。 &#xff08;文末送读者福利&#xff09…

第二证券|沪指冲上3200点,中字头太火爆!

轿车整车概念股拉升&#xff0c;多要素共同刺激下&#xff0c;新能源车或将呈现一轮涨价潮。 今天早盘&#xff0c;三大股指走势分解&#xff0c;沪指拉升涨1.56%&#xff0c;站上3200点关口&#xff1b;创业板指则围绕平盘线展开震动&#xff0c;跌0.39%。 以稳妥股为首的大金…

微服务架构下的认证鉴权解决方案

背景 单体应用在向微服务化架构演进时&#xff0c;需要考虑如何解决服务认证授权的问题。如果处理不好&#xff0c;会引发架构的混乱&#xff0c;带来安全、性能、难以维护的问题。 以最典型的包含WEB页面的具备登录态管理的系统为例。在最初阶段&#xff0c;登录鉴权一般通过…

MySQL学习笔记(十三)count(*),count(id),count(1),count(字段)区别

count count 是MySQL的一个查询数量统计的函数&#xff0c;我们在平常的工作中经常会用到&#xff0c;count(*),count(id),count(1),count(字段)这4种写法有什么区别呢&#xff1f; //星号 select count(*) from user; //常数 select count(1) from user; //id(主键) select …

[附源码]计算机毕业设计JAVA疫情居家隔离服务系统

[附源码]计算机毕业设计JAVA疫情居家隔离服务系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM my…

易基因课程回顾|表观遗传学和表观育种在品种改良中的应用研究

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 传统作物育种包括杂交、选择所需性状的遗传变异&#xff0c;导致遗传基础缩窄和遗传多样性缺失&#xff0c;从而阻碍作物改良。表型性状受遗传学和表观遗传学影响&#xff0c;利用表观遗传…

Java进阶架构师之如何画好架构图?阿里大神手把手教你!

1、什么是架构 架构就是对系统中的实体以及实体之间的关系所进行的抽象描述&#xff0c;是一系列的决策。 架构是结构和愿景。 系统架构是概念的体现&#xff0c;是对物/信息的功能与形式元素之间的对应情况所做的分配&#xff0c;是对元素之间的关系以及元素同周边环境之间…

小程序webView页面转发后,进入页面空白

小程序webView页面&#xff0c;在点击右上角按钮分享后&#xff0c;进入分享的链接页面空白 重新进入页面后&#xff0c;页面空白。使用电脑打开之后报错提示如下 一、排查页面转发后&#xff0c;页面地址有没有解码 webview页面转发后&#xff0c;小程序会将url参数转码&…

莱特飞行优化及其使用场景

莱特飞行优化及其使用场景 一&#xff0c;莱特飞行 但是产生一个莱特飞行分布的随机数是比较难的&#xff0c;莱特只给出了一个积分&#xff0c;所以后面就有人提出了如何制造这样分布的随机数。 Mantegna 在1994年提出的一种用正态分布求解随机数的方法&#xff0c;有时也叫…

【多线程(三)】生产者和消费者模式

文章目录3.生产者和消费者模式前言3.1生产者和消费者模式概述3.2生产者和消费者案例3.3 阻塞队列基本使用3.4 阻塞队列实现等待唤醒机制总结3.生产者和消费者模式 前言 在线程世界里&#xff0c;生产者就是生产数据的线程&#xff0c;消费者就是消费数据的线程。在多线 程开发…

使用OpenCV的函数hconcat()、vconcat()实现图像或矩阵的连接

使用OpenCV的函数hconcat()、vconcat()实现图像或矩阵的连接 函数hconcat()在水平方向上连接图像或矩阵&#xff1b; 函数vconcat()在垂直方向上连接图像或矩阵。 两个函数的原型和使用方法一模一样&#xff0c;所以在下面的函数原型介绍中&#xff0c;只介绍函数hconcat()的…

人工智能:声纹相关基础概念介绍

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

软件测试工程师涨薪攻略!3年如何达到30K!

1.软件测试如何实现涨薪 首先涨薪并不是从8000涨到9000这种涨薪&#xff0c;而是从8000涨到15K加到25K的涨薪。基本上三年之内就可以实现。 如果我们只是普通的有应届毕业生或者是普通本科那我们就只能从小公司开始慢慢往上走。 有些同学想去做测试&#xff0c;是希望能够日…

[附源码]计算机毕业设计设备运维平台出入库模块APPSpringboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【数据结构】建堆的方式、堆排序以及TopK问题

建堆的方式、堆排序以及TopK问题1、建堆的两种方式1.1 向上调整建堆1.2 向下调整建堆2、堆排序3、TopK问题4、建堆、堆排序、TopK问题全部代码1、建堆的两种方式 我们知道&#xff0c;堆是二叉树的一种&#xff0c;二叉树的建立是借助结构体与数组完成的&#xff08;通过在结构…