自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(260)
  • 收藏
  • 关注

原创 二叉堆树实现

1.1 基本概念二叉堆是一颗完全二叉树(区别于满二叉树),堆中某个结点的值总是不大于其父节点的值,通常这种堆称为最大堆(相应的可以定义最小堆),下层的某一元素不一定小于上层的某一元素。1、大顶堆(最大堆)最大堆的任何一个父节点的值,都大于或等于它左、右孩子节点的值。2、小顶堆(最小堆)最小堆的任何一个父节点的值,都小于或等于它左、右孩子节点的值。二叉堆的根节点叫作堆顶最大堆和最小堆的特点决定了:最大堆的堆顶是整个堆中的最大元素,最小堆的堆顶是整个堆中的最小元素。1.2存储原理完全二叉树

2021-12-19 19:18:12 701

原创 双向循环链表实现

1.1 基本介绍双向循环链表就是在双线链表的基础上首尾相连(第一个节点的prev指向最后一个节点,最后一个节点的next指向第一个节点)。1.2 添加操作1、思路分析头部插入当整个链表都为空时,添加操作。 头结点和尾节点都指向自己。 当链表不为空时,添加操作 先把当前头节点的上一跳地址给新元素的上一跳 然后让新节点的后驱指针指向head结点,再让head的前驱指针指向新元素。 更新head结点,让head结点指向新结点,更新tail结点,让tail的下一跳重新指向head

2021-12-15 17:19:38 1208 1

原创 单向循环链表实现

1.1 基本介绍循环链表,顾名思义,链表整体要形成一个圆环状。在单向链表中,最后一个节点的指针为null,不指向任何结点,因为没有下一个元素了。要实现循环链表,只需要让单向链表的最后一个节点的指针指向头结点即可。1.2 添加操作1、思路分析链表为空的时候让head和tail同时指向这个结点,让尾结点的下一跳指向头结点。 头部添加 先让要添加的元素指向head,然后再将head指针指向新结点。 最后让tail指针下一跳重新指向头结点 尾部添加 直接让新结点的下一跳指

2021-12-15 16:54:41 1458

原创 双向链表实现

1.1 基本介绍1、单向链表优缺点单向链表,查找的方向只能是一个方向,而双向链表可以向前或者向后查找。单向链表不能自我删除,需要靠辅助节点 ,而双向链表则可以自我删除。2、双向链表基本介绍双向链表也叫双向表,是链表的一种,它由多个结点组成,每个结点都由一个数据域和两个指针域组成,数据域(data)用来存储数据,其中一个指针域(next)用来指向其后继结点,另一个指针域用来指向前驱结点(prev指针)。链表的头结点的数据域不存储数据,指向前驱结点的指针域值为null,指向后继结点的指针域指向第一

2021-12-15 13:22:12 2086

原创 单向链表实现

1.1 基本介绍链表(linked list)是一种在物理上非连续、非顺序的数据结构,由若干节点(node)所组成。链表中数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域(data),另一个是存储下一个结点地址的指针域(next)。(百度百科) 1.2 存储原理链表的每一个节点分布在内存的不同位置,依靠next指针关联起来。这样可以灵活有效地利用零散的碎片空间。链表的第1个

2021-12-15 13:18:35 786

原创 ALV平衡树实现

1.1 基本介绍平衡二叉树又称AVL树,是一种最早的自平衡二分搜索树结构,它是具有如下性质的二叉树:左、右子树是平衡二叉树;所有结点的左、右子树深度之差的绝对值≤1。满二叉树一定是平衡二叉树,高度最低。完全二叉树也是平衡二叉树,叶子节点深度相差不为1为了方便起见,给每个结点附加一个数字 = 该结点左子树与右子树的深度差。这个数字称为结点的平衡因子。这样,可以得到AVL树的其它性质(可以证明) :任一结点的平衡因子只能取: -1、0、1,如果树中任意一个结点的平衡因子的绝对值大于1,则这棵二

2021-12-15 12:42:18 678

原创 顺序表(数组)实现

1.1 基本介绍顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元,依次存储线性表中的各个元素、使得线性表中再逻辑结构上响铃的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系。数组是最常见的顺序表,数组(Array)是有限个相同类型的变量所组成的有序集合,数组中的每一个变量被称为元素。数组是最为简单、最为常用的数据结构。 1.2 相关原理分析1、基本概念数组用一组连续的内存空间来存储一组具有相同类型的

2021-12-15 12:36:08 3257

原创 二分搜索树实现

1.1 基本介绍二叉搜索树是二叉树的一种,是应用非常广泛的一种二叉树,英文简称为BST又被称为:二叉查找树、二叉排序树,任意一个节点的值都大于其左子树所有节点的值,任意一个节点的值都小于其右子树所有节点的值,它的左右子树也是一棵二叉搜索树。二叉搜索树可以大大提高搜索数据的效率,二叉搜索树存储的元素必须具备可比较性。1.2 存储结构1、顺序存储二叉树的顺序存储结构就是用一维数组存储二叉树中的结点,并且结点的存储位置,也就是数组的下标要能体现出之间的逻辑关系。顺序存储结构在极端情况下浪费空间,只适

2021-12-12 15:42:05 506

原创 K8S-资源管理器

1-什么是资源控制器1、Controller Manager(资源控制器) 由kube-controller-manager 和 cloud-controller-manager组成, 是Kubernetes 的大脑,它通过 apiserver 监控整个集群的状态, 并确保集群处于预期的工作状态。2、kube-controller-managerkube-controller-manager运行管理控制器,它们是集群中处理常规任务的后台线程,逻辑上,每个控制器是一个单独的进程,但为了降低复杂性,它们都

2021-07-10 12:47:59 680 1

原创 K8S-资源清单

1.1 资源清单格式1、基本介绍资源清单有5个字段组成:apiVersion、kind、metadata、spec、status。apiVersion: group/apiversion # 如果没有给定 group 名称,那么默认为 core,可以使用kubectl apiversions # 获取当前 k8s 版本上所有的 apiVersion 版本信息(每个版本可能不同)kind: #资源类别metadata: #资源元数据 name namespace lables annota

2021-07-08 17:12:29 1178

原创 k8s入门-资源文件实现

1.1 idea安装k8s插件1、idea插件官网地址:https://plugins.jetbrains.com/2、kubernetes地址:https://plugins.jetbrains.com/plugin/10485-kubernetes/versions2、离线安装k8s插件特殊原因,在线安装有可能安装失败失败。下载idea对应版本的插件后,进行离线安装。help->about->查看idea内部版本信息​ 下载对应的版本!!!离线安装k8s插件,安装成功

2021-07-06 21:56:43 307 2

原创 k8s入门-命令行实现

1-什么是NameSpace?俗称命名空间,可以单纯的认为namespaces是kubernetes集群中的虚拟化集群。在一个Kubernetes集群中可以拥有多个命名空间,它们在逻辑上彼此隔离。 可以为你提供组织,安全甚至性能方面的帮助!Namespace是对一组资源和对象的抽象集合,比如可以用来将系统内部的对象划分为不同的项目组或用户组。常见的pods, services, replication controllers和deployments等都是属于某一个namespace的(默认是defau

2021-07-06 11:02:33 443

原创 k8s-集群安装

1-Kubernetes 是什么?1.1常见的云平台IaaS(Infrastructure as a Service):基础设施服务,常见平台阿里云。PaaS(platform as a service):平台即服务,常见平台如新浪云。SaaS(Software as a Service):软件即服务,常见平台Office365。Kubernetes(PaaS)是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长

2021-07-04 16:47:35 827 2

原创 Docker-安装私服

在使用maven管理jar包依赖的时候,为了避免每次都从中央仓库拉取依赖包,使用了nexus做了代理仓库。docker镜像仓库与nexus私服仓库作用类似,用于将打包好的镜像保存在仓库中方便开发、测试、生产环境镜像拉取存储,减轻环境部署需要的相应操作。1.1 购买阿里云服务器1、选择云服务器,创建实例2、自定义购买,按量付费3、选择服务器类型,数量,内存,带宽4、自定义登录密码5、创建成功!!!1.2 节点信息购买两个服务器,服务器的名字为root,服务器密码: Hxy162

2021-06-20 01:04:28 391

原创 Docker-docker swarm

1.1 购买服务器购买3台服务器,所有主机都安装docker和docker-compose1.2 Swarm集群产生compose、machine 和 swarm 是docker 原生提供的三大编排工具。简称docker三剑客。1、服务器硬件要求硬件资源最小配置推荐配置CPU1 CPU2CPU内存1GB2~4GB硬盘20 GB40GB2、节点信息主机名IP地址具体说明docker018.134.122.252swar

2021-06-20 00:57:32 332

原创 Docker-安装GitLab

1.1 docker官网地址https://hub.docker.com/r/gitlab/gitlab-ce官网教程:https://docs.gitlab.com/omnibus/docker/1.2 基础镜像## 稳定版docker pull gitlab/gitlab-ce:12.7.6-ce.0## 最新版:不是很稳定的版本docker pull gitlab/gitlab-ce:latest1、运行容器docker run -itd --name gitlab -p 44

2021-06-18 21:54:16 119 1

原创 Docker-Docker Compose

1.1 基本概述在实际生产环境中,一个应用往往由许多服务构成,而 docker 的最佳实践是一个容器只运行一个进程,因此运行多个微服务就要运行多个容器。多个容器协同工作需要一个有效的工具来管理他们,定义这些容器如何相互关联。compose 应运而生。compose 是用来定义和运行一个或多个容器(通常都是多个)运行和应用的工具。使用 compose 可以简化容器镜像的构建以及容器的运行。compose 使用 YAML 文件来定义多容器之间的关系。一个 docker-compose up 就可以把完整的应

2021-06-16 01:17:11 223

原创 Docker-IDEA整合Docker

1.1 创建项目1、构建springboot项目​2、编写一个helloControllerpackage cn.guardwhy.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class HelloController {

2021-06-13 07:42:02 143

原创 Docker-网络初体验

1.1 Docker0初体验1、清空服务器所有的容器和正在运行的所有镜像docker rm -f $(docker ps -a -q) # 删除所有容器docker rmi -f $(docker images -qa) # 删除全部镜像2、查看本地ip,执行命令:ip addr网络端口分析1: lo: 127.0.0.1/8 #本机回环地址2: eth0: 172.17.183.201 #阿里云内网地址3: docker0: 172.18.0.1 # docke

2021-06-13 07:36:48 284 2

原创 Docker-dockerfile文件

1.1 什么是DockerFiledockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。构建步骤:1、编写一个dockerFile文件。2、docker build 构建成为一个镜像。3、docker run运行镜像4、docker push 发布镜像(DockerHub、阿里云镜像仓库)查看仓库的centOS: https://hub.docker.com/_/centos点击镜像: https://github.com/CentOS/sig-clou

2021-06-11 22:49:25 475

原创 Docker-容器数据卷

1.1 什么是容器数据卷1、容器数据卷产生前提将应用和运行的环境打包形成容器运行,运行结果可以伴随着容器,对于数据的要求,我们是希望能够持久化的,假设说你安装一个redis,如果把容器删了,就相当于删库跑路,出现以上的问题,我们希望容器之间有可能可以共享数据,Docker容器产生的数据,如果不通过docker commit 生成新的镜像,使得数据作为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有了!为了能保存数据在Docker中就可以使用卷!让数据挂载到我们本地!这样数据就不会因为容器删除

2021-06-11 22:44:42 296

原创 Docker-镜像原理

1.1 什么是镜像?镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。所有的应用,直接打包docker镜像,就可以直接跑起来!!!如何得到镜像:从远程仓库进行下载。小伙伴传输给你。自己制作一个镜像DockerFile。1.2 镜像加载原理UnionFS(联合文件系统)UnionFS(联合文件系统):Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统(类

2021-06-08 22:14:08 568 4

原创 Docker-容器操作

1.1 查看容器1、查看最后一次运行的容器docker ps -l2、查看运行容器docker ps3、查看所有容器docker ps -a4、进入容器,其中字符串为容器IDdocker exec -it ecc704d85084 /bin/bash5、停用全部运行中的容器docker stop $(docker ps -q)6、删除全部容器docker rm $(docker ps -aq)7、一条命令实现停用并删除容器docker stop $(docker ps

2021-06-08 21:54:18 150

原创 Docker-镜像操作

1.1 查看镜像信息1、基本语法docker images​REPOSITORY:镜像名称TAG:镜像标签 (默认是可以省略的,也就是latest)IMAGE ID:镜像IDCREATED:镜像的创建日期(不是获取该镜像的日期)SIZE:镜像大小 这些镜像都是存储在注意: Docker宿主机的/var/lib/docker目录下1.2 搜素镜像1、如果你需要从网络中查找需要的镜像,可以通过以下命令搜索docker search 镜像名称NAME:仓库名称DESCRIP

2021-06-08 21:48:19 81

原创 Docker-基本概述

1-容器化和虚拟化Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化。1.1 虚拟化1、在最早的时候,我们想要在线上部署一个应用。我们需要先购买服务器,然后安装操作系统及各种依赖环境,最后进行应用的部署。2、存在问题部署应用上线应用过程时间非常长购买服务器的花费不菲物理服务器的资源容易浪费迁移和扩展比较困难3、解决方案:通过虚拟化技术,可以解决以上问题,虚拟化技

2021-06-08 21:44:49 457 1

原创 Linux-修改内核

1.1 升级内核版本查看内核的版本uname -r升级内核两种方式1.2 yum 安装1、安装epel软件包yum install epel-release -y2、安装最新版内核yum install kernel1.3 源代码编译安装内核1.3.1 安装需要的依赖包yum install gcc gcc-c++ make ncurses-devel openssl-devel elfutils-libelf-devel -y1.3.2 下载并且解压缩内核inux内核下载

2021-06-05 22:00:14 2163 2

原创 Linux-网络配置

1- 查询网络1.1 网络状态查看CentOS 7 .x系统默认没有安装 ifconfig命令,如果直接运行 ifconfig 命令,则提示错误 :-bash: ifconfig: command not found可以通过yum安装net-tools。yum install net-tools安装后,ifconfig 命令可以正常执行。可以查看/sbin 目录,此时 ifconfig 文件也出现了。​ 1.2 显示网络设备命令1、执行命令ifconfig2、执行命令ip addr

2021-06-05 21:22:07 336

原创 Linux-修改CentOS默认yum源

有时候CentOS默认的yum源不一定是国内镜像,导致yum在线安装及更新速度不是很理想。需要将yum源设置为国内镜像站点。1.2.1 腾讯源1.备份系统旧配置文件mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup2、进入yum源配置文件所在的文件夹[root@linux ~]# cd /etc/yum.repos.d/3、下载==mirrors.tencentyun.com==的yum源

2021-06-05 20:38:07 509

原创 MySQL-找回数据库用户密码

1、执行mysql -u root -p指令2、执行命令vim /etc/my.cnf,添加语句skip-grant-tables 3、执行该命令service mysqld restart。​4、无需密码,直接登录。5、使用数据库,查看数据表。6、修改密码update user set authentication_string=password("root") where user='root';7、执行刷新操作!!!flush privileges;​8、执行mys

2021-06-05 02:03:49 145

原创 Linux-备份与恢复

1.1 基本介绍实体机无法做快照,如果系统出现异常或者数据损坏,后果严重, 要重做系统,还会造成数据丢失。所以可以使用备份和恢复技术。linux 的备份和恢复有两种方式:把需要的文件(或者分区)用tag打包就行,下次需要恢复的时候,再解压开覆盖即可。执行 dump 和 restore 命令,进行操作。1.2 安装 dump 和 restore查看CentOS上没有 dump 和 restore指令,如果没有安装,则需要执行以下命令dump安装yum -y install dumpre

2021-06-04 21:41:51 311 1

原创 Linux-日志管理

1.1 基本介绍1、日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包括用户的登录信息、系统的启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等。2、日志对于安全来说也很重要,它记录了系统每天发生的各种事情,通过日志来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。3、日志是用来记录重大事件的工具。1.2 系统常用的日志1.2.1 查看系统日志1、系统日志文件的保存位置:/var/log2、系统常用的日志日志文件具体作用/var/log/boot

2021-06-03 22:49:09 225

原创 Ubuntu-软件安装

1.1 Ubuntu 介绍Ubuntu(优般图、乌班图)是一个以桌面应用为主的开源 GNU/Linux 操作系统,Ubuntu 是基于 GNU/Linux,支持 x86、amd64(即 x64)和 ppc 架构,由全球化的专业开发团队(Canonical Ltd)打造的。Ubuntu 和 Centos 都是基于 GNU/Linux 内核的,因此基本使用和 Centos 是几乎一样的,它们的各种指令可以通用,在学习和使用 Ubuntu 的过程中,会发现各种操作指令在前面学习 CentOS 都使用过。只是

2021-06-02 23:18:00 142 4

原创 Ubuntu-系统安装

1.1 虚拟机简介虚拟机是一个软件,它可以使你在一台真实PC机器上同时运行两个或更多的操作系统,如:Windows或Linux。它可以模拟一个标准的PC环境,这个环境和真实的计算机一样,有芯片组、CPU、内存、显卡、声卡、网卡、软驱、硬盘、光驱、串口、并口、USB控制器。1、目前市场上流行的虚拟机有两种:VMware(威睿)公司的虚拟机软件,功能强大,收费产品,有30天试用期。VirtualBox (甲骨文)公司的虚拟机软件,免费的商品。2、VMware Workstation下载地址ht

2021-06-02 14:05:21 121 1

原创 Linux-shell编程

1.1 Shell定义1、基本定义Shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 Shell 来启动、挂起、停止甚至是编写一些程序。​ 2、CentOS 7 默认使用的 Shell 是 bash。3、bash基本特点一条命令只做一件事为了组合命令和多次执行,使用脚本文件来保存需要执行的命令。赋予该文件执行权限(chmod u+rx filename)1.2 Shell执行方式1.2.1 脚本格式要求脚本以#!

2021-06-02 01:23:47 509

原创 Linux-软件安装

1.1 rpm 包的管理1.1.1 基本介绍rpm 用于互联网下载包的打包及安装工具,它包含在某些 Linux 分发版中。它生成具有.RPM 扩展名的文件。RPM是 RedHat Package Manager(RedHat 软件包管理工具)的缩写,类似 windows 的 setup.exe,这一文件格式名称虽然打上了 RedHat 的标志,但理念是通用的。Linux 的分发版本都有采用(suse,redhat, centos 等等),可以算是公认的行业标准了。rpm 包类似于windows的36

2021-06-01 20:08:24 112 2

原创 Linux-进程管理

1.1 基本介绍在操作系统中,每个执行的程序都称为一个进程。每一个进程都分配一个 ID 号(pid,进程号)。 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。​ 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才才结束。1.2 系统执行进程1.2.1 基本介绍ps 命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数。

2021-05-31 22:34:11 706 1

原创 Linux- 网络配置

1.1 网络配置原理图1.2 查看网络IP和网关1.2.1 修改 IP 地址1.2.2 查看网关1.2.3 查看 windows网络执行命令:ipconfig1.2.4 查看linux的网络配置执行命令:ifconfig​1.2.5 ping 测试主机之间网络连通性1、基本语法ping 目的主机 (功能描述:测试当前服务器是否可以连接目的主机)2、应用实例主机ping服务器!!!服务器ping主机!!!1.3 linux 网络环境配置1.3.1 自动获取通过界

2021-05-30 16:49:39 446

原创 Linux-磁盘分区和挂载

1-Linux 分区1.1 基本介绍Linux 来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构 。Linux中每个分区都是用来组成整个文件系统的一部分。Linux 采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。1.2 硬盘说明1、Linux 硬盘分 IDE 硬盘和 SCSI 硬盘,目前基本上是 SCSI 硬盘。2、对于 IDE

2021-05-30 10:46:09 271

原创 Linux- 定时任务调度

1- crond 任务调度crontab 进行定时任务的设置1.1 基本概述任务调度:是指系统在某个时间执行的特定的命令或程序。任务调度分类:1.系统工作:有些重要的工作必须周而复始地执行,如病毒扫描等。个别用户工作:个别用户可能希望执行某些程序,比如对 mysql 数据库的备份。图解说明1.2 基本语法crontab [选项]具体作用- e编辑crontab定时任务- l查询crontab任务- r删除当前用户所有的crontab任务1.3

2021-05-29 20:20:38 385

原创 Linux-组管理和权限管理

1.1 Linux 组基本介绍在 linux 中的每个用户必须属于一个组,不能独立于组外。在 linux 中每个文件有所有者、所在组、其它组的概念​ 1.2 文件/目录 所有者一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。1.2.1 查看文件所有者指令:ls -ahl查看结果​1.2.2 修改文件所有者指令:chown 用户名 文件名案例说明使用 root 创建一个文件 test1.txt ,然后将其所有者修改成 currychown curry test1.tx

2021-05-29 11:23:05 135

空空如也

空空如也

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

TA关注的人

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