摘要: 环境配置 更换为国内镜像 https://mirrors.ustc.edu.cn/help/ubuntu.html 更新apt sudo apt-get update 避免每次输入sudo命令都要输入密码 # 打开 sudo 文件夹 sudo EDITOR=vim visudo # 在最后一行添加上 阅读全文
posted @ 2021-08-08 20:54 沧海一声笑rush 阅读(103) 评论(0) 推荐(0)
摘要: 立扣 121 题 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不 阅读全文
posted @ 2021-08-07 03:34 沧海一声笑rush 阅读(43) 评论(0) 推荐(0)
摘要: 接口的定义 go的接口类型定义了一组行为。 如果某个 类型 实现了某个接口。那么所以使用这个接口的地方,都支持这种类型。 如果一个变量,他实现了接口里的所有方法,那么他就是实现了这个接口 接口的作用 需求 现在有 狗 和 猫 两个结构体,都能叫,如果被 打 这个函数调用了,他们都能叫,如果在函数往里 阅读全文
posted @ 2021-08-05 14:40 沧海一声笑rush 阅读(144) 评论(0) 推荐(0)
摘要: Linux 操作系统中断 举个简单的场景,比如你正在家里打单机游戏,突然你饿了,然后你就打电话,叫了一份外卖,你此时叫完外卖,没有必要一直在这里等着,你可以回头继续打游戏,等你游戏打到大 boss 的时候,这个时候,外卖小哥过来敲门了,那么此时你肯定不能退出游戏,因为退出了游戏,再进就得从头开始打, 阅读全文
posted @ 2021-08-02 06:50 沧海一声笑rush 阅读(106) 评论(0) 推荐(0)
摘要: geospatial 地理位置 添加不同城市的地理位置信息 geoadd china:city 116.408 39.901 beijing geoadd china:city 121.445 31.213 shanghai geoadd china:city 120.343 36.088 qing 阅读全文
posted @ 2021-07-31 17:08 沧海一声笑rush 阅读(55) 评论(0) 推荐(0)
摘要: 概论 日志系统主要有redo log(重做日志)和binlog(归档日志)。redo log是InnoDB存储引擎层的日志,binlog是MySQL Server层记录的日志, 两者都是记录了某些操作的日志(不是所有)自然有些重复(但两者记录的格式不同)。 每一层的主要功能 客户端:建立连接,提交 阅读全文
posted @ 2021-07-31 13:53 沧海一声笑rush 阅读(145) 评论(0) 推荐(0)
摘要: ac abc abbbbbc abbbbbbbbc adc adddddddc ac abc abbc abababac 限定符 ? hous? # 简单点理解,?表示最后的 s,可有可无 * ab*c # 表示b可以出现一次或者是多次 + ab+c # + 表示至少出现一次 指定匹配位数 ab{8 阅读全文
posted @ 2021-07-30 17:09 沧海一声笑rush 阅读(59) 评论(0) 推荐(0)
摘要: go压测 http服务压测的方法比较多,主要使用第三方的软件即可实现,推荐使用 go-wrk, go-wrk使用 go get github.com/adeven/go-wrk # 安装命令 go-wrk [flags] url # 使用方法 go-wrk -t=8 -c=100 -n=10000 阅读全文
posted @ 2021-07-30 15:34 沧海一声笑rush 阅读(689) 评论(0) 推荐(0)
摘要: 剪绳子 立扣343. 整数拆分 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。 func cuttingRope(n int) int { // n 米长的绳子 dp := make([]int, n+1) //范围从1到n dp[1] = 阅读全文
posted @ 2021-07-30 05:40 沧海一声笑rush 阅读(87) 评论(0) 推荐(0)
摘要: 没有障碍物的时候 选择立扣第 62 题 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径? 分析 原问题和子问题 可以使用动态规 阅读全文
posted @ 2021-07-30 04:52 沧海一声笑rush 阅读(610) 评论(0) 推荐(0)
摘要: 01背包问题 有10件商品,要从 甲地 运往 乙地,每件货的总量和利润如下表,求一辆最大载重为 30t 的货车,运输这些货物的总利润最大。答案是 :2410 | 物品 | 1| 2 |3|4|5|6|7|8|9|10| | | | | | | | | | | | | | 总量 | 6 | 3 |4| 阅读全文
posted @ 2021-07-29 17:16 沧海一声笑rush 阅读(118) 评论(0) 推荐(0)
摘要: 查询基本原则 基本操作 select 从哪里选,选什么? show用法 use `student` -- 切换数据 show databases; -- 查看数据库 show tables; -- 查看有多少表 show columns from student; -- 有多少列 order by 阅读全文
posted @ 2021-07-28 03:09 沧海一声笑rush 阅读(106) 评论(0) 推荐(0)
摘要: 例一 去除一个字符串中连续的空格,即"H__el___lo 变成 H_el_lo" ; 就是相当于使用 flag 定义了不同的状态,进行操作 func main() { a := "h__el___lo" str := []byte(a) flag := 1 for _, v := range st 阅读全文
posted @ 2021-07-25 05:07 沧海一声笑rush 阅读(74) 评论(0) 推荐(0)
摘要: 给定不同面值的 m 种硬币 coins 和一个总金额 S,请编写一个函数来计算用这些硬币可以凑成总金额 S 的方案数。(每种硬币的数量是无限的, S以及coins中元素都是正整数,且不考虑每种方案中硬币的顺序) 分析一下就会发现,这个问题和普通的动态规划问题,其实是不一样的,前边的动态规划问题,都牵 阅读全文
posted @ 2021-07-25 04:01 沧海一声笑rush 阅读(177) 评论(0) 推荐(0)
摘要: 什么是竞态 如果两个或者两个以上的 goroutine 在没有相同同步的情况下,访问某个资源,并同时试图读写,就会出现竞争态,竞争态会让代码编写变得复杂,引起潜在危险。 例1 比如下面的例子,我们对a加了一百次,但是由于存在竞争问题,所以最后输出的结果是 88 func main() { a = 0 阅读全文
posted @ 2021-07-24 18:34 沧海一声笑rush 阅读(61) 评论(0) 推荐(0)
摘要: 概括 本文后端使用 netcore 3.1,前端使用 vue 2.x 开发,本文也借鉴了很多人写的博客,但是其中相当一部分代码根本跑不通。再者就是没有充分使用element-ui封装好的组件,大量的自己书写js代码,看起来比较费劲,还有部分未做到前后端的分离,把本应该前端做的事情,交给了后端。这大概 阅读全文
posted @ 2021-07-24 13:48 沧海一声笑rush 阅读(353) 评论(0) 推荐(0)
摘要: 动态规划问题 动态规划(Dynamic Programming)(简称 DP 问题),是运筹学的一个分支,通常用来解决多阶段决策过程最优化问题,动态规划的基本思想,是将原问题,转化为一系列相互联系的子问题,然后通过逐层递推来求的最后的解。 斐波拉契数列 斐波拉契数列的样子 0 ,1, 1, 2, 3 阅读全文
posted @ 2021-07-22 05:53 沧海一声笑rush 阅读(224) 评论(0) 推荐(0)
摘要: 内存的使用 存在磁盘中的程序,转成汇编指令以后,用 call 40 ,表示调用位置为 40 地方的代码。但是程序的执行,是需要将程序加载到内存中实行的,那么此时的 call 要用到的地址,就必须是真实的物理地址,这个过程是如何实现的呢? 具体过程 先在内存中,找到一段空白的内存。 把程序加载到这一段 阅读全文
posted @ 2021-07-21 19:12 沧海一声笑rush 阅读(334) 评论(0) 推荐(0)
摘要: HTTPS的过程 服务器端的公钥和私钥,用来进行非对称加密。 客户端生成的随机密钥,用来进行对称加密。 【浏览器】向服务器发起HTTPS请求,连接到服务器的443端口。(或者浏览器不知道服务器仅支持 https 请求,使用http协议发送到80端口,服务器一般会使用 302 进行重定向处理) 【服务 阅读全文
posted @ 2021-07-20 15:26 沧海一声笑rush 阅读(419) 评论(0) 推荐(0)
摘要: 分层名称 功能 每层功能概览 应用层 针对特定的应用协议 Hppt协议,邮件协议 表示层 网络标准数据格式 接受不同形式的文本、图像、声音 会话层 通信的管理 何时建立连接,何时断开连接,保持多久连接 传输层 TCP协议 两个进程之间的数据传输 网络层 地址管理和路由选择 经过哪个路由器传递到目标地 阅读全文
posted @ 2021-07-19 10:29 沧海一声笑rush 阅读(228) 评论(0) 推荐(0)
摘要: 图的基本该概念 边 为了将图和树做区分。往往将图中的节点,叫做顶点。两个定点中间存在边,则为相邻关系。 注意有向图的边称为 弧,分为弧头还有 弧尾;无向图的边依旧称为 边。 有向图还分 如度 和 出度 完全有向图和完全无向图 在有向图中,有n个顶点,那么最多有 n(n-1) 条边,那么有 n(n-1 阅读全文
posted @ 2021-07-17 17:40 沧海一声笑rush 阅读(119) 评论(0) 推荐(0)
摘要: 操作系统 操作系统说白了,也是个程序,一开始的时候,操作系统相对于其他的应用程序。会优先加载到内存中,所以他加载到内存从0开始的位置,其他的应用程序将放到高位置的内存中。 操作系统接口 使用命令,相当于调用了 shell 程序,然后通过 shell 程序来运行程序。所以 shell是个程序,他调用了 阅读全文
posted @ 2021-07-17 16:47 沧海一声笑rush 阅读(240) 评论(0) 推荐(0)
摘要: 参考模型各层总结 5层参考模型 功能 应用层 任务: 提供系统与用户的接口协议: HTTP协议 传输层 **传输单位:**报文段 **任务:**负责两个进程之间的通信 协议: TCP、UDP 协议 **功能:**提供端到端的可靠传输,流量控制 网络层 **传输单位:**数据报**任务:**将传输层传 阅读全文
posted @ 2021-07-17 13:34 沧海一声笑rush 阅读(377) 评论(0) 推荐(0)
摘要: 求二叉树的深度 type BTNode struct { Date int LChild *BTNode RChild *BTNode } func treeDepth(root *BTNode) int { if root == nil { return 0 } left := treeDepth 阅读全文
posted @ 2021-07-17 00:55 沧海一声笑rush 阅读(143) 评论(0) 推荐(0)
摘要: 各种算法对比 排序方法 时间复杂度 空间复杂度 稳定性 直接插入(插入排序) n2 1 稳定 直接选择(选择排序) n2 1 不稳定 堆排序(选择排序) nlog2 n 1 不稳定 冒泡排序(交换排序) n2 1 稳定 快速排序(交换排序) n2 nlog2 n 不稳定 排序算法的稳定性大家应该都知 阅读全文
posted @ 2021-07-16 21:05 沧海一声笑rush 阅读(100) 评论(0) 推荐(0)
摘要: 一.链表 1.1双向链表的基本操作 package main import "fmt" type Node struct { Data int PrePoint *Node NextPont *Node } type LinkList struct { head *Node current *Nod 阅读全文
posted @ 2021-07-16 17:11 沧海一声笑rush 阅读(114) 评论(0) 推荐(0)
摘要: 流量控制和可靠传输,都是属于传输层的功能 在传输层,使用 TCP 连接的时候,是可以保证端到端的可靠传输的,只要主机 B 发现 TCP 数据传输有差错,就告诉主机A,将有差错的部分重传。直到这部分数据正确传到 B 为止。 TCP连接管理 TCP连接四原组:源地址,源端口,目的地址,目的端口 流量控制 阅读全文
posted @ 2021-07-16 16:54 沧海一声笑rush 阅读(516) 评论(0) 推荐(0)
摘要: 操作系统的五大基本功能 处理器管理:处理器的分配和运行都是以进程为基本单位 存储器管理:对内存进行分配、保护和扩充 设备管理 文件管理 用户接口:cmd 核心态和用户态 为了避免操作系统以及其他的关键数据收到用户程序 有意或无意的破坏,通常将 处理器的执行状态 分为 用户态 和 核心态。 核心态: 阅读全文
posted @ 2021-07-16 15:15 沧海一声笑rush 阅读(945) 评论(0) 推荐(0)
摘要: Redis持久化 redis将所有的数据都存储在内存中,所以访问速度很快,但是一旦 redis 重启,所有存储在 redis中的数据都会丢失。所以要持久化到硬盘中,重启以后可以恢复数据。 redis 持久化的方式有两种,一种是 RDB 方式,一种是 AOF 方式, RDB 是按照规则,“定时”将内存 阅读全文
posted @ 2021-07-16 00:09 沧海一声笑rush 阅读(380) 评论(0) 推荐(0)
摘要: go语言操作redis有个包,一个是 go-redis,另一个是redigo,官方推荐第二种,但是个人比较喜欢用第一种。 连接数据库 package main import ( "fmt" "log" "math/rand" "sync" "time" "github.com/go-redis/re 阅读全文
posted @ 2021-07-15 02:32 沧海一声笑rush 阅读(6189) 评论(2) 推荐(0)
摘要: 简单实现 实现消息队列,只需要发布者在 list 中,使用lpush 往队列里添加值,订阅者在另一侧,使用 RPOP , 从队列中往外取值。 lpush list01 1 2 3 4 5 6 #往队列里面添加值 rpop list01 #从队列里面取值 存在的问题 上面就是一个简单的消息队列,但是存 阅读全文
posted @ 2021-07-14 17:47 沧海一声笑rush 阅读(191) 评论(0) 推荐(0)
摘要: 切片和结构体的声明 切片的扩容,只有使用 append 的时候管用 指针如果没有声明指向哪里,那么就是 nil 结构体使用 type M struct , 匿名结构体使用var M struct { } 来声明 报错infinite recursive call 无限递归调用 map 不需要使用数组 阅读全文
posted @ 2021-07-13 19:40 沧海一声笑rush 阅读(61) 评论(0) 推荐(0)
摘要: 基于session 的方式存在的问题 服务器端需要存储 session,并且由于 Session 需要经常快速查找,所以通常存储在内存中,或者内存数据库中。如果同时又大量用户在线,就会占用大量的服务器资源 当需要扩展时候,创建 session 的服务器可能不是验证 session的服务器,所以还需要 阅读全文
posted @ 2021-07-12 21:42 沧海一声笑rush 阅读(102) 评论(0) 推荐(0)
摘要: 概念 并发是同一时间段执行多个任务,(你同时和两个女生聊天) 并行是同一时刻执行多个任务,(你和你朋友在和女生聊天) Go 语言的并发是通过 goroutine 实现的,goroutine 类似于线程,属于用户态的线程(程序员自己编写的) ,我们可以根据需要创建成千上万的 goroutine 并发工 阅读全文
posted @ 2021-07-12 03:35 沧海一声笑rush 阅读(98) 评论(0) 推荐(0)
摘要: map 基础操作 map 的声明 m := make(map[string]int, 2) m["hah"] = 15 m["mmm"] = 20 m["wwm"] = 30 m["wsegewwm"] = 40 fmt.Println(len(m)) //输出是 4,输出的会是总长度 m := m 阅读全文
posted @ 2021-07-11 23:47 沧海一声笑rush 阅读(343) 评论(0) 推荐(0)
摘要: Zap 日志库 常见的日志级别 panic:(error)错误已经发生,会导致系统退出 error:错误虽然发生,但是不影响系统的继续进行 warn:表明会出现潜在的错误 info:通知你一声 debug:调试输出,对于调试应用程序非常用帮助 基本配置 登录测试 package main impor 阅读全文
posted @ 2021-07-10 20:56 沧海一声笑rush 阅读(220) 评论(0) 推荐(0)
摘要: # MySQL的结构 ![](https://img2020.cnblogs.com/blog/1979227/202107/1979227-20210731131055833-2025587716.png) # MySQL数据引擎 InnoDB 和 MyISam 的区别 ### 事务方面 `Inn 阅读全文
posted @ 2021-07-10 15:21 沧海一声笑rush 阅读(249) 评论(0) 推荐(0)
摘要: # 锁 ## 排他锁和共享锁(按照锁的属性分) - 排他锁 ,也叫 写锁 简称 `X锁`,即事务 A 读数据对象加上 `X锁`以后,只能有事务 A 完成读取和修改操作,其他任何事物在此期间,都不能再加任何类型的锁,直到锁释放为停止。 - 共享锁, 又叫 读锁,简称`S锁`,即事务 A 可以对对象添加 阅读全文
posted @ 2021-07-10 00:27 沧海一声笑rush 阅读(82) 评论(0) 推荐(0)
摘要: redis 雪崩、穿透、击穿的区别 这都是涉及到服务器的高可用的部分。他们之间的区别如下 雪崩:同一时刻,大量的key 过期 穿透:就是访问的 redis 里面都没有,直接 击穿:某一个热点的 key 突然过期了,所有的请求都打到了 mysql 上 缓存雪崩 产生雪崩的是指一个时间段内,大量的key 阅读全文
posted @ 2021-07-09 19:24 沧海一声笑rush 阅读(930) 评论(0) 推荐(0)
摘要: MySQL数据库(使用原始包) 尝试连接 package main import ( "database/sql" // sql接口 "fmt" _ "github.com/go-sql-driver/mysql" //使用了 init() 方法 "time" ) var db *sql.DB fu 阅读全文
posted @ 2021-07-08 19:38 沧海一声笑rush 阅读(256) 评论(0) 推荐(0)