公博义
码龄2年
  • 5,171,596
    被访问
  • 213
    原创
  • 9,272
    排名
  • 1,271
    粉丝
关注
提问 私信

个人简介:我欲成仙,快乐齐天

  • 加入CSDN时间: 2020-04-20
博客简介:

shenyuanhaojie的博客

查看详细资料
  • 6
    领奖
    总分 2,048 当月 117
个人成就
  • 获得165次点赞
  • 内容获得37次评论
  • 获得732次收藏
创作历程
  • 58篇
    2022年
  • 152篇
    2021年
  • 4篇
    2020年
成就勋章
TA的专栏
  • devops
    26篇
  • 云计算
    177篇
  • golang
    25篇
  • linux
    77篇
  • linux运维
    115篇
  • 编程
    6篇
  • jenkins
    7篇
  • java
    3篇
  • 语法
    13篇
  • python
    16篇
  • 前端
    2篇
  • html
    2篇
  • mysql
    28篇
  • k8s
    14篇
  • SQL
    7篇
  • database
    17篇
  • css
    1篇
  • break
    1篇
  • redis
    11篇
  • mongodb
    2篇
  • Tomcat
    1篇
  • nginx
    2篇
  • shell
    6篇
  • rsync
    2篇
  • 网络
    23篇
  • LVS
    3篇
  • epoll
    1篇
  • MMM
    1篇
  • CSDN
    3篇
  • 格式
  • MySQL 优化
    1篇
  • innodb
    1篇
  • myisam
    1篇
  • 事务
    1篇
  • 索引
    1篇
兴趣领域 设置
  • 大数据
    hadoop
  • 运维
    容器devopsjenkinskubernetes自动化系统架构网络运维开发
  • 服务器
    linuxcentos
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Golang 学习二十六(HTTP 编程)

文章目录1. 服务器配置2. 客户端配置3. 请求方法4. panic 宕机恢复5. 模板6. MysqlGo 原生支持 http,直接使用 import("net/http") 即可,http 服务性能和 nginx 非常接近,都具备高并发支持的能力,代码实现起来较为简单。1. 服务器配置示例:https://www.jianshu.com/p/e494795794cfpackage mainimport ( "fmt" "net/http")/* HTTP 服务端配置 */
原创
发布博客 2022.05.10 ·
198 阅读 ·
0 点赞 ·
0 评论

Golang 学习二十五(UDP 编程)

文章目录1. 服务端配置2. 客户端配置3. 实现双向聊天4. 优化多客户端实现通讯–UDP 是用户数据报协议,是一种无连接传输协议,不需要建立连接就可以直接发送和接收数据,属于不可靠的,没有时序的通信,UDP 实时性好,适合直播环境。1. 服务端配置示例package mainimport ( "fmt" "net")/* UDP 服务端 */func main() { // 1. 监听 listener,err := net.ListenUDP("
原创
发布博客 2022.04.29 ·
1409 阅读 ·
0 点赞 ·
0 评论

Golang 学习二十四(TCP 编程)

文章目录1. 服务器端配置2. 客户端配置3. 运行结果4. 优化聊天模式5. 实现客户端和服务端之间的双向聊天客户端和服务器模型socket:BSD UNIX 的进程通信机制,通常也称作套接字,用于描述 IP 地址和端口,是一个通信链的句柄。socket 可以理解为 TCP/IP 网络的 API,它定义了许多函数,程序员可以使用它来开发 TCP/IP 网络的应用程序。计算机上运行对的应用程序通常通过套接字向网络发出请求或者应答网络请求。服务端处理流程:1. 监听端口2. 接收客户端连接3
原创
发布博客 2022.04.29 ·
2976 阅读 ·
0 点赞 ·
0 评论

Golang 学习二十三(单元测试)

文章目录1. 函数测试2. 结构体测试  在提交测试工程师代码前,先进行单元测试自检,没有问题,方可提交代码,对于模块或者函数需要自行写测试用例。规则:文件名必须以 _test.go 结尾。如果是测试函数,必须以 Test 开头。1. 函数测试calc.gopackage main// 加法func add(a,b int) int { return a + b}// 减法func sub(a,b int) int { return a - b
原创
发布博客 2022.04.29 ·
107 阅读 ·
0 点赞 ·
0 评论

Golang 学习二十二(Go 并发)

文章目录1. 基本概念2. sync.WaitGroup3. goroutine 和线程4. channel5. 无缓冲通道和缓冲通道6. 案例:生产者和消费者模型7. select 多路复用8. 单向通道9. 并发控制和锁(1) 互斥锁(2) 读写互斥锁(3) sync.Once(4) sync.Map(5) 定时器1. 基本概念并发:是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。同—时间段同时在做多个事
原创
发布博客 2022.04.29 ·
121 阅读 ·
0 点赞 ·
0 评论

Golang 学习二十一(文件处理)

文章目录1. 打开和关闭文件2. 读取文件3. 写入文件计算机中的文件是存储在外部介质(硬盘)上的数据集合,文件分为文本文件和二进制文件。1. 打开和关闭文件os.open() 函数能够打开一个文件,返回一个 *File 和一个 err,对得到的文件示例 close() 方法能够关闭文件。示例package mainimport ( "fmt" "os")// 打开关闭文件func main() { // 打开当前目录下的 abc.txt 文件 fil
原创
发布博客 2022.04.19 ·
260 阅读 ·
0 点赞 ·
1 评论

Golang 学习二十(反射)

文章目录1. reflect2. ValueOf3. Value.Set4. 结构体反射5. 函数反射6. 方法反射变量 ---> 一个值,一个类型,值类型数组 ---> 相同类型,多个值,长度固定,值类型切片 ---> 相同类型,多个值,长度动态,引用类型,有序指针 ---> 地址,引用类型映射 ---> k-v 按名字取值,无序,相同类型,多个值,长度动态结构体 ---> 多个值,类型多样,字段(属性)接口 ---> 接受任意类型的定义反射概
原创
发布博客 2022.04.19 ·
79 阅读 ·
0 点赞 ·
0 评论

Golang 学习十九(接口)

文章目录1. 接口定义2. 多态3. 系统接口调用4. 接口嵌套5. 类型断言6. 链表使用发现输出哪里不同package mainimport "fmt"// 父类结构体 Cartype Car struct { weight int name string}// 父方法func (c Car) Run() { fmt.Println("Running")}// 子结构体 Traintype Train struct { // 匿名
原创
发布博客 2022.04.19 ·
31 阅读 ·
0 点赞 ·
0 评论

Golang 学习十八(结构体和方法)

文章目录1. 别名定义2. 工厂模式3. Tag 原信息4. 匿名字段5. 方法1. 别名定义变量别名定义// 有些变量太长,简化变量名// 为了安全,隐藏原始变量名package mainimport "fmt"// int 类型起了别名为 integertype integer intfunc main() { // 类型别名定义 var i integer = 1000 fmt.Println(i) var j int = 100
原创
发布博客 2022.04.11 ·
202 阅读 ·
0 点赞 ·
0 评论

Golang 学习十七(二叉树)

文章目录1. 前序遍历2. 中序遍历3. 后序遍历满足以下两个条件的树就是二叉树:本身是有序树树中包含的各个节点的度不能超过 2,即只能是 0、1 或者 21. 前序遍历前序遍历二叉树(根左右)package mainimport "fmt"type Student struct { Name string Age int Score float32 // 左子树指针 left *Student // 右子树指针 right
原创
发布博客 2022.04.09 ·
577 阅读 ·
0 点赞 ·
0 评论

Golang 学习十六(结构体链表)

文章目录1. 存储方式2. 链表更新2.1 链表定义2.2 将遍历链表封装成函数2.3 尾部添加元素(结构体节点)2.4 头部添加元素2.5 插入元素2.6 删除元素概念:结构体是自定义复杂数据结构,struct 里面可以包含多个字段(属性),struct 类型可以定义方法,和函数有区分,struct 属于值类型,且可以做嵌套,Go 中没有 Class 类型,只有 struct 类型。示例:回顾结构体定义package mainimport "fmt"type Car struct {
原创
发布博客 2022.04.09 ·
439 阅读 ·
0 点赞 ·
0 评论

Golang 学习十五(时间函数)

文章目录1. 时间概念2. 获取当前日期3. 统计程序执行时间1. 时间概念1小时=60分钟 Hour1分钟=60秒 Minute1秒=1000毫秒 Second1毫秒= 1000微秒 Millisecond1微秒=1000纳秒 Microsecond1纳秒 Nanosecond// 时间格式化package mainimport ( "fmt" "time")func main() { // 获取当前时间 now := time.Now()
原创
发布博客 2022.04.07 ·
72 阅读 ·
0 点赞 ·
0 评论

Golang 学习十四(字符串处理)

文章目录1. 字节数组2. 头尾处理3. 位置索引4. 替换5. 统计次数6. 重复7. 大小写8. 去除字符9. 切片处理10. 数值处理1. 字节数组字符是人的语言(文本:字符串),字节是机器的语言(图片,音频,视频 …),它们之间通过 ASCII 码互相翻译,一个英文字符等于一个字节,一个中文字符等于二个字节(UTF-8)。package mainimport "fmt"func main() { var ( str1 = "hello" str
原创
发布博客 2022.04.04 ·
319 阅读 ·
0 点赞 ·
0 评论

Golang 学习十三(递归排序)

文章目录1. 阶乘2. 斐波那契数列递归,就是在运行的过程中调用自己。Go 支持递归。但在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中。递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等。语法如下:func recursion() { recursion() // 函数调用自身}func main() { recursion()}1. 阶乘示例:package mainimport "fmt"// uint64
原创
发布博客 2022.04.03 ·
252 阅读 ·
0 点赞 ·
0 评论

Golang 学习十二(Go 映射 map)

文章目录1. 映射的实现2. 元素赋值3. 查找与遍历4. 元素删除5. 将映射传递给函数映射是一种数据结构,用于存储一系列无序的键值对(映射基于键来存储值)。映射功能强大的地方是,能够基于键快速检索数据。键就像索引一样,指向与该键关联的值。Map 是一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map 是无序的,我们无法决定它的返回顺序,这是因为 Map 是使用 hash 表来实现的。与 C++、Java 不一样,Go 使用映射(map)不需要引入任何库。四种复合类型特点:
原创
发布博客 2022.03.31 ·
336 阅读 ·
0 点赞 ·
0 评论

Golang 学习十一(Go 切片)

文章目录1. 定义切片2. 切片初始化3. len() 和 cap() 函数4. 空(nil)切片5. 切片截取6. append() 和 copy() 函数Go 语言切片是对数组的抽象。Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go 中提供了一种灵活,功能强悍的内置类型切片(“动态数组”),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。1. 定义切片你可以声明一个未指定大小的数组来定义切片:var identifier []type切
原创
发布博客 2022.03.29 ·
46 阅读 ·
0 点赞 ·
0 评论

Golang 学习十(Go 结构体)

文章目录1. 定义结构体2. 访问结构体成员3. 结构体作为函数参数4. 结构体指针Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。结构体表示一项记录,比如保存图书馆的书籍记录,每本书有以下属性:- Title :标题- Author : 作者- Subject :学科- ID :书籍ID1. 定义结构体结构体定义需要使用 type 和 struct 语句。struct 语句定义一个
原创
发布博客 2022.03.29 ·
53 阅读 ·
0 点赞 ·
0 评论

Golang 学习九(Go 指针)

文章目录1. 指针概念2. 使用指针流程3. 空指针4. 指针数组5. 指向指针的指针6. 指针作为函数参数Go 中指针很容易,使用指针可以更简单的执行一些任务。变量是一种使用方便的占位符,用于引用计算机内存地址。取地址符是 &,放到一个变量前使用就会返回相应变量的内存地址。1. 指针概念一个指针变量指向了一个值的内存地址。类似于变量和常量,在使用指针前需要声明指针。指针声明格式如下:var varName *varTypevarType 是指针类型,varNam
原创
发布博客 2022.03.28 ·
319 阅读 ·
0 点赞 ·
0 评论

Golang 学习八(Go 数组)

文章目录1. 数组介绍2. 声明数组3. 初始化数组4. 访问数组元素5. 多维数组1. 数组介绍数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整型、字符串或者自定义类型。相对于去声明 number0, number1, ... number99 的变量,使用数组形式 numbers[0], numbers[1]...numbers[99] 更加方便且易于扩展。数组元素可以通过索引(位置)来读取(或者修改),索引从 0 开始,第一个元素索引为 0,第二
原创
发布博客 2022.03.28 ·
282 阅读 ·
0 点赞 ·
0 评论

Golang 学习七(Go 函数)

文章目录1. 基础函数2. 函数参数3. 函数作为实参4. 函数闭包5. 函数方法函数是基本的代码块,用于执行一个任务。Go 程序中最少有一个 main() 函数。可以通过函数来划分不同的功能,逻辑上每个函数执行的是指定的任务。函数声明告诉了编译器函数的名称,返回类型和参数。Go 中的标准库提供了多种可动用的内置的函数。例如:len() 函数可以接受不同类型参数并返回该类型的长度。如果传入的是字符串则返回字符串的长度,如果传入的是数组,则返回数组中包含的元素个数。1.
原创
发布博客 2022.03.25 ·
525 阅读 ·
0 点赞 ·
0 评论
加载更多