- 博客(96)
- 收藏
- 关注
原创 Go——反射的使用
目录1,reflect2,valueOf3,value.set4,结构体的反射5,函数的反射6,方法反射概念:运行时动态的获取变量的相关信息。反射:对一些对象进行序列化处理Import ("reflect)1,reflect reflect. TypeOf,获取变量的类型,返回reflect Type类型 reflect ValueOf,获取变量的值,返回reflect .Value类型 reflect.Value Kind, 获取变量的
2022-04-21 13:23:15 1100
原创 GO--重要操作:接口
目录1,接口定义2,多态3,系统接口调用4,接口嵌套5,类型断言6,链表使用示例:发现输出哪里不同package mainimport "fmt"//父结构体carttype cart struct { weight int color string}//父结构体方法func (c cart) run() { fmt.Println("running")}//定义子结构体traintype train stru
2022-04-20 14:53:25 358
原创 GO---结构体和方法
目录1,别名定义2,工厂模式3,Tag原信息4,匿名字段5,方法1,别名定义示例:package mainimport "fmt"//别名定义type integer intfunc main() { var i integer = 1000 fmt.Println(i) fmt.Printf("类型%T\n", i) //别名相当于软链接源文件和软链接链接文件 i++ fmt.Println(i) //改
2022-04-20 14:34:50 547
原创 GO-----二叉树结构
目录1,前序遍历2,中序遍历3,后序遍历满足以下两个条件的树就是叉树:1.本身是有序树;2.树中包含的各个节点的度不能超过2,即只能是0、1或者2;示意图:1,前序遍历示例:前序遍历二叉树(根左右)package mainimport "fmt"type student struct { name string age int score float32 left *student righ.
2022-04-20 14:28:12 337
原创 GO-重点操作:结构体链表
目录1,存储方式2,链表更新概念:结构体是自定义复杂数据结构,struc里面可以包含多个字段(属性) , struct类型可以定义方法,和函数有区分,struct属于值类型,且可以做嵌套,Go中没有Class类型, 只有struct类型。 示例:结构体定义package mainimport "fmt"//结构体定义type student struct { name string age int score float32 next.
2022-04-20 14:25:09 469
原创 GO-时间函数的使用
目录1,时间转换2,具体操作实例1,时间转换时间概念:1小时=60分钟 Hour1分钟=60秒 Minute1秒= 1000毫秒 Second1毫秒= 1000微秒 Millisecond1微秒= 1000纳秒 Microsecond1纳秒 Nanosecond2,具体操作实例示例:时间格式化。package mainimport ( "fmt" "time")//时间函数func main() { //获
2022-04-20 14:16:47 222
原创 GO-重要操作:字符串处理
目录1,字节数组2,头尾处理3,位置索引4,替换5,统计次数6,重复7,大小写8,去除字符9,切片处理10,数值处理1,字节数组示例:package mainimport "fmt"func main() { var ( str1 = "hello" str2 = "world" ) result := str1 + " " + str2 fmt.Printf("数据:%
2022-04-20 14:11:21 797
原创 GO-递归函数之经典案例之-->阶乘--->斐波那契数列
目录1,阶乘2, 斐波那契数列递归,就是在运行的过程中调用自己。 语法如下:func recursion() {recursion() /*函数调用自身*/}func main() {recursion()}Go支持递归。但在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中。 递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等。1,阶乘示例:package mainimport "fmt"func num(n
2022-04-20 14:05:40 347
原创 GO 语言映射
目录1,映射的实现2,元素赋值3,查找与遍历4,元素删除5,将映射传进函数映射是一种数据结构, 用于存储一系列无序的键值对, 映射基于键来存储值。 映射功能强大的地方是,能够基于键快速检索数据。键就像索引一样,指向与该键关联的值。 与C++、Java不一 样,Go使用映射(map)不需要引入任何库。map是属于引用类型复合类型数据结构复合类型 值的类型 值的数量 值得索引 数组 相同 固定 下标 切片 相同 动态
2022-04-20 14:01:36 1147
原创 Go语言的切片
目录1,定义切片2,切片初始化3,len() 和 cap() 函数4,空(nil)切片5,切片截取6,append() 和 copy() 函数切片是对数组的抽象。 数组的长度不可改变,在特定场最中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片 ("动态数组"),与数组相比切片的长度是不固定的,可以追加元索,在追加时可能使切片的容量增大。切片是引用类型。1,定义切片可以声明一个未指定大小的数组来定义切片:var identifier []t
2022-04-20 13:48:31 443
原创 GO—结构体简述
目录1,定义结构体2,访问结构体成员3,结构体作为函数参数4,结构体指针Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。结构体表示一项记录,比如班级的学生信息,每个人有以下属性:●Name:姓名 ●Sex:性别 ●Age:年龄 ●IDcard: 身份证注:结构体是值类型1,定义结构体结构体定义需要使用 type 和 struct 语句。struct 语句定义一个
2022-04-20 13:41:11 197
原创 GO ----如何判断值类型和引用类型
如何判断值类型和引用类型1:建立函数2:把进行传参处理3:观察函数处理结果是否影响值的变化判断:有变化是引用类型,没有变化是值类型示例:int是值类型---指针是引用类型package mainimport "fmt"//值类型和引用类型//1,创建函数//2,传参//3,有变化是引用类型,无变化是值类型func main() { var ( a int = 10 c int = 20 b *int .
2022-04-03 10:12:26 719
原创 GO —— 指针的妙用
目录GO 指针1,空指针2,指针数组3,指向指针的指针4,指针作为函数参数GO 指针Go中指针很容易,使用指针可以更简单的执行一些任务. 变量是一种使用方便的占位符,用于引用计算机内存地址。 取地址符是&,放到一个变量前使用就会返回相应变量的内存地址。指针概念 一个指针变量指向了一一个值的内存地址。 类似于变量和常量,在使用指针前需要声明指针。指针声明格式如下:var var_ name *var-typevar-type为指针类型, var_ name
2022-04-01 23:24:57 905
原创 GO—— 数组的兄弟---切片
目录GO 切片1,定义切片2,切片初始化3,len() 和 cap() 函数4,空(nil)切片5,切片截取6,append() 和 copy() 函数GO 切片切片是对数组的抽象。数组的长度不可改变,在特定场最中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片 ("动态数组"),与数组相比切片的长度是不固定的,可以追加元索,在追加时可能使切片的容量增大。切片是引用类型。1,定义切片可以声明一个未指定大小的数组来定义切片:var
2022-04-01 23:15:46 338
原创 GO ——奇妙的数组
目录GO 数组1,声明数组2,初始化数组3,访问数组元素4,多维数组5,向函数中传递数组GO 数组数组是具有相同唯一类型的一 组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整型、字符串或者自定义类型。 相对于去声明number0, number1, ... number99的变量,使用数组形式numbers[0], numbers[1] ... numbers[99]更加方便且易于扩展。 数组元素可以通过索引(位置)来读取(或者修改) ,索引从0开始,第
2022-04-01 23:09:21 300
原创 GO函数内部程序执行顺序
GO 包包是结构化代码的一种方式:每个程序都由包(通常简称为pkg)的概念组成,可以使用自身的包或者从其它包中 导入内容。 如同其它一些编程语 言中的类库或命名空间的概念,每个Go文件都属于且仅属于一个包。一个包可以由许多以.go为扩展名的源文件组成,因此文件名和包名-般来说都是不相同的。 必须在源文件中非注释的第一行指明这个文件属于哪个包,如: package main。 package main表示-个可独立 执行的程序,每个Go应用程序都包含-个名为main的包。 一个应用程序可以包含不同的包,而
2022-04-01 11:42:03 1509
原创 GO语言的函数简述
目录GO 函数1:基础函数2,函数参数3,函数作为实参4,回调函数5,函数闭包6,函数方法GO 函数函数是基本的代码块,用于执行一个任务。 Go程序中最少有个main()函数。 可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。 函数声明告诉了编译器函数的名称,返回类型,和参数。Go中的标准库提供了多种可动用的内置的函数。安装完go编译器就可以直接被调用的是内置函数例如,len() 函数可以接受不同类型参数并返回该类型的长度。如果传入的是字符串
2022-04-01 11:28:23 831
原创 go语言的控制台输入
目录GO 控制台输入高并发读写加缓冲区GO 控制台输入不同基础类型之间的转化 对于不同的基础类型之间的转化,Go提供了strconv包。它实现了字符串与其他基本数据类型之间的转化。其中最常用的数值转化函数是Atoi和Itoa,简单了解下它的使用。Atoi方法可以将字符串类型的数值直接转化为int类型的数值,而Itoa可以将int类型的数值转化为string类型的值。 示例:控制台输入一个数值,进行数值大小的比较。示例:控制台输入:package main.
2022-04-01 11:21:35 1178
原创 GO语言中的循环语句
目录GO 循环语句1,for 循环2,for 循环嵌套3,break语句4,continue 语句5,goto 语句GO 循环语句在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。以下几种类型循环处理语句:循环类型 描述 [for循环] 重复执行语句块 [循环嵌套] 在for循环中嵌套一个或多个for循环 循环控制语句循环控制语句可以控制循环体内语句的执行过程。 以下几种循环控制语句:.
2022-04-01 11:13:09 2335
原创 简述GO条件语句
目录GO 条件语句1,if 语句2,if...else 语句3,if 语句嵌套4,switch 语句Type switch 语句fallthrough5,select 语句GO 条件语句条件语句需要开发者通过指定一个或多 个条件,并通过测试条件是否为true来决定是否执行指定语句,并在条件为false的情况在执行另外的语句。 提供了以下几种条件判断语句:语句 描述 [if语句] if语句由一个布尔表达式后紧跟一个或多个语句组成。 [if..
2022-04-01 11:01:35 448
原创 GO 运算符
GO 运算符运算符用于在程序运行时执行数学或逻辑运算。 Go语言内置的运算符有: ●算术运算符 ●关系运算符 ●逻辑运算符 ●位运算符 ●赋值运算符 ●其他运算符1,算数运算符下表列出了所有Go语言的算术运算符。假定A值为10, B值为20.运算符 描述 实例 + 相加 A+ B输出结果30 - 相减 A-B输出结果-10 * 相乘 A*B输出结果200 / 相除 B/A输出结果2 % 求余 B%A输
2022-04-01 10:54:11 239
原创 GO 语言的基础语法(二)
目录GO 语言变量3,值类型和引用类型4,变量的作用域5,简短形式,使用:=复制操作符6,空白标识符GO常量GO 语言变量3,值类型和引用类型值类型:int、float、bool和string这些类型都属于值类型,使用这些类型的变量直接指向存在内存中的值,值类型的变量的值存储在栈中。当使用等号=将一个变量的值赋给另一个变量时,如 j = i ,实际上是在内存中将 i 的值进行了拷贝。可以通过 &i 获取变量 i 的内存地址。 值拷贝引用类型:特指sli
2022-04-01 10:46:00 320
原创 GO 语言基础(一)
目录Go语言基础语法1,Go标记2,行分割符3,注释4,标识符5,字符串连接6,关键字7,GO语言的空格8,格式化字符串Go语言的数据类型数字类型浮点型其他数字类型GO语言变量变量声明多变量声明Go语言基础语法1,Go标记Go程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号。如以下GO语句由6个标记组成:1. frat3. Printin4. (5. "Hel1o, World!"6. )
2022-03-17 11:22:24 288
原创 GO语言包之间的调用
目录GO语句写法两个包之间调用1,在不同目录调用2,在同一个目录下调用GO 中协程演示GO语句写法在test.go文件中编写测试代码package mainimport ("fmt")func main() {fmt .Print1n("he11o wor1d")}1.第一行代码package main定义了包名。你必须在源文件中非注释的第一-行指明这个文件属于哪个包,如: Package main,Package main表示个可独立执行的程序,
2022-03-17 11:11:42 4167 1
原创 Go开发环境部署
目录GO基本概念go 语言用途GO 开发环境部署1,安装GO2,安装步骤3,设置环境变量4,安装开发环境vscodeGO基本概念Go是-个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 G0是从2007年末由Robert Griesemer (罗伯特.格利茨默) , Rob Pike (罗伯:派克) , Ken Thompson (肯.汤普森)主持开发,后来还加 入了lan Lance Taylor(伊恩兰斯泰勒),RusS Cox(鲁斯.考斯等人,
2022-03-17 11:00:07 780
原创 初识docker
目录一,docker是什么二,docker的使用场景三,docker引擎和架构1,docker引擎(docker engine)2,docker架构(docker architecture)四,docker原理1,namespace2,控制组(control groups)五,docker部署总结:一,docker是什么Docker 是一个开源的应用容器引擎,基于GO 语言并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依
2022-01-10 22:40:34 364
原创 分布式文件系统GlusterFS/GFS---让存储变得更高端
目录一,概述1,简介2,GFS的特点3,Gluster 术语4,架构和工作流程GlusterFS 工作流程5,弹性HASH算法6,GlusterFS 支持卷类型二,GFS的部署一,概述1,简介GlusterFS 是一个开源的分布式文件系统。 GlusterFS 主要由存储服务器(Brick Server)、客户端及 NFS/Samba 存储网关(可选, 根据需要选择使用)组成。GlusterFS 架构中最大的设计特点是没有元数据服务器组件,这有助于提升整个系
2021-12-15 20:03:19 532
原创 rsync远程同步详解
目录一,remote sync,远程同步配置rsync远程同步二,rsync实时同步配置实时同步一,remote sync,远程同步是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源。在同步过程中,同步源负责提供文件的原始位置,发起端
2021-12-14 22:56:44 1660
原创 非关系型数据库---Redis(二)
目录一,Redis 高可用二,Redis持久化1,Redis持久化简介2,RDB持久化触发条件3,AOF持久化1,开启AOF持久化2,执行流程4,RDB与AOF的优缺点三,Redis性能管理一,Redis 高可用--- Redis 高可用----在web服务器中,高可用是指服务器可以正常访问的时问,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99% 99.998等等)。但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提供正常服
2021-12-13 19:53:10 145
原创 非关系型数据库---Redis
目录一,缓存的概念1,引入缓存2,缓存保存的位置及分层结构1,DNS缓存2,应用层缓存3,数据层缓存4,硬件缓存二,Redis基础1,关系型数据库与非关系型数据库(NOSQL)1,关系型数据库2,非关系型数据库3,关系型数据库与非关系型数据库的区别4,非关系型数据库产生的背景2,Redis简介3,Redis与memcached对比三,Redis安装四,Redis命令相关五,数据库常用的命令一,缓存的概念1,引入缓存REm..
2021-12-13 17:25:54 733
原创 Redis 群集详解
一,Redis群集概念虽然Redis可以实现单机的数据持久化,但无论是RDB也好或者AOF也好,都解决不了单点宕机问题,即一旦单台 redis服务器本身出现系统故障、硬件故障等问题后,就会直接造成数据的丢失,此外单机的性能也是有极限的,因此需要使用另外的技术来解决单点故障和性能扩展的问题 主从复制:主从复制是高可用Redis的基础,哨兵和集群都是在主从复制基础上实现高可用的。主从复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复。缺陷:故障恢复无法自动化;写操作无法负载均..
2021-12-13 14:36:02 1016
原创 squid代理服务器
一,缓存代理概述1,web代理的工作机制缓存网页对象,减少重复请求代理的工作机制: 代替客户机向网站请求数据,从而可以隐藏用户 的真实 IP 地址,起到一定的保护作用。 将获得的网页数据(静态 web 元素)保存到缓存中并发给客户机,以便下次请求相同的数据时加快响应速度 2,代理的基本类型1,传统代理:适用于Internet,需明确指定服务端2,透明代理:客户机不需指定代理服务器的地址和端口,而通过默认路由和防火墙策略将web访问重定向给代理服务器..
2021-12-12 12:26:11 695
原创 MySQL高可用集群——MHA高可用配置
一,MHA简介1,MHA概述一套优秀的MySQL高可用环境下故障切换和主从复制软件MHA的出现就是解决MySQL单点故障的问题MySQL故障过程中,MHA能做到0-30秒内自动完成故障切换MHA能在故障切换过程中最大程度上能保证数据的一致性,以达到真正意义上的高可用MHA的组成: MHA Manager (管理节点) MHA Node (数据节点)MHA的特点:自动切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据不丢失...
2021-12-08 19:21:19 1183
原创 mysql主从复制和读写分离
目录一,主从复制架构和原理1,mysql主从复制原理2,读写分离的原理二,配置主从复制与读写分离1,环境配置2,初始环境准备3,搭建mysql主从复制3,搭建Amoeba 实现读写分离三,实际问题1,造成主从不一致的原因2,主从不一致修复方法3,如何避免主从不一致一,主从复制架构和原理1,mysql主从复制原理mysql的复制类型:mysq支持的复制类型(1)STATEMENT:基于语句的复制。在服务器上执行sql语句,在从服务器上执行同样
2021-12-07 18:50:48 704
原创 数据库SQL高级语言(后续来了)
目录1,连接查询2,视图3,联集4,case5,日期时间函数6,空值和无值7,regexp正则表达式8,运算符9,存储过程10,常见的错误代码11,死锁1,连接查询inner join on(内连接)只返回两个表中联结字段的相等的行left join on(左连接): 返回包括左表中的所有记录和右表中联结字段相等的记录right join on(右连接): 返回包括右表中的所有记录和左表中联结字段相等的记录语法:select 字段 from 表
2021-12-06 22:14:53 579
原创 数据库SQL高级语言
目录1,导入数据库2,select3,distinct4,where5,and,or6,in7,between8,like (通配符模糊查询)9,order by10,函数10.3 字符串函数11,group by12,having13,别名14,子查询15,exists1,导入数据库将数据库文件导入系统中[root@localhost ~]# cd /opt[root@localhost opt]# rz -Erz wait
2021-12-06 17:44:37 615
原创 一文了解mysql日志与备份恢复
一,日志1,日志的作用和分类mysql的日志默认保存位置为/usr/local/mysql/data1,redo 重做日志:达到事务一致性(每次重启会重做)作用:确保日志的持久性,防止在发生故障,脏页未写入磁盘。重启数据库会进行redo log执行重做,达到事务一致性2,undo 回滚日志作用:保证数据的原子性,记录事务发生之前的一个版本,用于回滚,innodb事务可重复读和读取已提交 隔离级别就是通过mvcc+undo实现3,errorlog 错误日志作用:Mysql本..
2021-12-05 14:18:17 991
原创 mysql存储引擎详解
一,存储引擎概念MySQL中的数据用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎存储引擎是MySQL将数据存储在文件系统中的存储方式或者存储格式MySQL常用的存储引擎:MyISAMInnoDBMySQL数据库中的组件,负责执行实际的数据I/O操作MySQL系统中,存储引擎处于文件系统之上,在数据保存到数据文件之前会传输到存储引擎,之后按照各个存储引擎的存储格式进行存..
2021-12-01 15:24:17 193
原创 mysql索引和事务详解
目录一,mysql索引介绍1,索引的概念2,索引创建的基本原则3,索引的创建和分类1,普通索引2,唯一索引3,主键索引4,组合索引(单列索引与多列索引)5、全文索引(FULLTEXT)4,查看索引5,删除索引二,mysql事务介绍1,事务的概念2,事务的ACID特点3,mysql事务的隔离级别4,事务控制语句5,使用set设置控制事务一,mysql索引介绍1,索引的概念数据库的索引索引是一个排序的列表,在这个列表中存储着索引
2021-11-30 19:33:01 874
原创 mysql数据库管理
目录一,mysql数据类型1,常用数据类型2,SQL语句二,mysql数据库管理(增删改查)1,DDL语句2,DML管理表中的数据记录3,DQL查询数据记录三,数据库的高级操作四,数据库用户管理一,mysql数据类型1,常用数据类型类型 说明 int 整型,用于定义整数类型的数据 fload 单精度浮点4字节32位,准确表示到小数点后六位 double 双精度浮点8字节64位 char 固定长度的字符类型,用于定义
2021-11-29 19:17:51 1261
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人