07 2021 档案

摘要: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 阅读(40) 评论(0) 推荐(0) 编辑
摘要:概论 日志系统主要有redo log(重做日志)和binlog(归档日志)。redo log是InnoDB存储引擎层的日志,binlog是MySQL Server层记录的日志, 两者都是记录了某些操作的日志(不是所有)自然有些重复(但两者记录的格式不同)。 每一层的主要功能 客户端:建立连接,提交 阅读全文
posted @ 2021-07-31 13:53 沧海一声笑rush 阅读(125) 评论(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 阅读(40) 评论(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 阅读(611) 评论(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 阅读(67) 评论(0) 推荐(0) 编辑
摘要:没有障碍物的时候 选择立扣第 62 题 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径? 分析 原问题和子问题 可以使用动态规 阅读全文
posted @ 2021-07-30 04:52 沧海一声笑rush 阅读(532) 评论(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 阅读(88) 评论(0) 推荐(0) 编辑
摘要:查询基本原则 基本操作 select 从哪里选,选什么? show用法 use `student` -- 切换数据 show databases; -- 查看数据库 show tables; -- 查看有多少表 show columns from student; -- 有多少列 order by 阅读全文
posted @ 2021-07-28 03:09 沧海一声笑rush 阅读(54) 评论(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 阅读(53) 评论(0) 推荐(0) 编辑
摘要:给定不同面值的 m 种硬币 coins 和一个总金额 S,请编写一个函数来计算用这些硬币可以凑成总金额 S 的方案数。(每种硬币的数量是无限的, S以及coins中元素都是正整数,且不考虑每种方案中硬币的顺序) 分析一下就会发现,这个问题和普通的动态规划问题,其实是不一样的,前边的动态规划问题,都牵 阅读全文
posted @ 2021-07-25 04:01 沧海一声笑rush 阅读(127) 评论(0) 推荐(0) 编辑
摘要:什么是竞态 如果两个或者两个以上的 goroutine 在没有相同同步的情况下,访问某个资源,并同时试图读写,就会出现竞争态,竞争态会让代码编写变得复杂,引起潜在危险。 例1 比如下面的例子,我们对a加了一百次,但是由于存在竞争问题,所以最后输出的结果是 88 func main() { a = 0 阅读全文
posted @ 2021-07-24 18:34 沧海一声笑rush 阅读(46) 评论(0) 推荐(0) 编辑
摘要:概括 本文后端使用 netcore 3.1,前端使用 vue 2.x 开发,本文也借鉴了很多人写的博客,但是其中相当一部分代码根本跑不通。再者就是没有充分使用element-ui封装好的组件,大量的自己书写js代码,看起来比较费劲,还有部分未做到前后端的分离,把本应该前端做的事情,交给了后端。这大概 阅读全文
posted @ 2021-07-24 13:48 沧海一声笑rush 阅读(330) 评论(0) 推荐(0) 编辑
摘要:动态规划问题 动态规划(Dynamic Programming)(简称 DP 问题),是运筹学的一个分支,通常用来解决多阶段决策过程最优化问题,动态规划的基本思想,是将原问题,转化为一系列相互联系的子问题,然后通过逐层递推来求的最后的解。 斐波拉契数列 斐波拉契数列的样子 0 ,1, 1, 2, 3 阅读全文
posted @ 2021-07-22 05:53 沧海一声笑rush 阅读(201) 评论(0) 推荐(0) 编辑
摘要:内存的使用 存在磁盘中的程序,转成汇编指令以后,用 call 40 ,表示调用位置为 40 地方的代码。但是程序的执行,是需要将程序加载到内存中实行的,那么此时的 call 要用到的地址,就必须是真实的物理地址,这个过程是如何实现的呢? 具体过程 先在内存中,找到一段空白的内存。 把程序加载到这一段 阅读全文
posted @ 2021-07-21 19:12 沧海一声笑rush 阅读(290) 评论(0) 推荐(0) 编辑
摘要:HTTPS的过程 服务器端的公钥和私钥,用来进行非对称加密。 客户端生成的随机密钥,用来进行对称加密。 【浏览器】向服务器发起HTTPS请求,连接到服务器的443端口。(或者浏览器不知道服务器仅支持 https 请求,使用http协议发送到80端口,服务器一般会使用 302 进行重定向处理) 【服务 阅读全文
posted @ 2021-07-20 15:26 沧海一声笑rush 阅读(386) 评论(0) 推荐(0) 编辑
摘要:分层名称 功能 每层功能概览 应用层 针对特定的应用协议 Hppt协议,邮件协议 表示层 网络标准数据格式 接受不同形式的文本、图像、声音 会话层 通信的管理 何时建立连接,何时断开连接,保持多久连接 传输层 TCP协议 两个进程之间的数据传输 网络层 地址管理和路由选择 经过哪个路由器传递到目标地 阅读全文
posted @ 2021-07-19 10:29 沧海一声笑rush 阅读(137) 评论(0) 推荐(0) 编辑
摘要:图的基本该概念 边 为了将图和树做区分。往往将图中的节点,叫做顶点。两个定点中间存在边,则为相邻关系。 注意有向图的边称为 弧,分为弧头还有 弧尾;无向图的边依旧称为 边。 有向图还分 如度 和 出度 完全有向图和完全无向图 在有向图中,有n个顶点,那么最多有 n(n-1) 条边,那么有 n(n-1 阅读全文
posted @ 2021-07-17 17:40 沧海一声笑rush 阅读(87) 评论(0) 推荐(0) 编辑
摘要:操作系统 操作系统说白了,也是个程序,一开始的时候,操作系统相对于其他的应用程序。会优先加载到内存中,所以他加载到内存从0开始的位置,其他的应用程序将放到高位置的内存中。 操作系统接口 使用命令,相当于调用了 shell 程序,然后通过 shell 程序来运行程序。所以 shell是个程序,他调用了 阅读全文
posted @ 2021-07-17 16:47 沧海一声笑rush 阅读(210) 评论(0) 推荐(0) 编辑
摘要:参考模型各层总结 5层参考模型 功能 应用层 任务: 提供系统与用户的接口协议: HTTP协议 传输层 **传输单位:**报文段 **任务:**负责两个进程之间的通信 协议: TCP、UDP 协议 **功能:**提供端到端的可靠传输,流量控制 网络层 **传输单位:**数据报**任务:**将传输层传 阅读全文
posted @ 2021-07-17 13:34 沧海一声笑rush 阅读(327) 评论(0) 推荐(0) 编辑
摘要:树的定义 由唯一的根和若干互不相交的子树,每一颗子树又是一棵树。 相关概念 结点的度:拥有子树的个数 树的度:树中各节点度的最大值 双亲节点: 祖先节点:他上边所有的节点都是祖先节点 森林:把树的根去掉,剩下的树就构成了森林 树的存储结构 树的存储有两种方式:顺序存储、链式存储 顺序存储:一般使用称 阅读全文
posted @ 2021-07-17 00:55 沧海一声笑rush 阅读(93) 评论(0) 推荐(0) 编辑
摘要:各种算法对比 排序方法 时间复杂度 空间复杂度 稳定性 直接插入(插入排序) n2 1 稳定 直接选择(选择排序) n2 1 不稳定 堆排序(选择排序) nlog2 n 1 不稳定 冒泡排序(交换排序) n2 1 稳定 快速排序(交换排序) n2 nlog2 n 不稳定 排序算法的稳定性大家应该都知 阅读全文
posted @ 2021-07-16 21:05 沧海一声笑rush 阅读(58) 评论(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 阅读(105) 评论(0) 推荐(0) 编辑
摘要:流量控制和可靠传输,都是属于传输层的功能 在传输层,使用 TCP 连接的时候,是可以保证端到端的可靠传输的,只要主机 B 发现 TCP 数据传输有差错,就告诉主机A,将有差错的部分重传。直到这部分数据正确传到 B 为止。 TCP连接管理 TCP连接四原组:源地址,源端口,目的地址,目的端口 流量控制 阅读全文
posted @ 2021-07-16 16:54 沧海一声笑rush 阅读(409) 评论(0) 推荐(0) 编辑
摘要:操作系统的五大基本功能 处理器管理:处理器的分配和运行都是以进程为基本单位 存储器管理:对内存进行分配、保护和扩充 设备管理 文件管理 用户接口:cmd 核心态和用户态 为了避免操作系统以及其他的关键数据收到用户程序 有意或无意的破坏,通常将 处理器的执行状态 分为 用户态 和 核心态。 核心态: 阅读全文
posted @ 2021-07-16 15:15 沧海一声笑rush 阅读(738) 评论(0) 推荐(0) 编辑
摘要:Redis持久化 redis将所有的数据都存储在内存中,所以访问速度很快,但是一旦 redis 重启,所有存储在 redis中的数据都会丢失。所以要持久化到硬盘中,重启以后可以恢复数据。 redis 持久化的方式有两种,一种是 RDB 方式,一种是 AOF 方式, RDB 是按照规则,“定时”将内存 阅读全文
posted @ 2021-07-16 00:09 沧海一声笑rush 阅读(331) 评论(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 阅读(6044) 评论(2) 推荐(0) 编辑
摘要:简单实现 实现消息队列,只需要发布者在 list 中,使用lpush 往队列里添加值,订阅者在另一侧,使用 RPOP , 从队列中往外取值。 lpush list01 1 2 3 4 5 6 #往队列里面添加值 rpop list01 #从队列里面取值 存在的问题 上面就是一个简单的消息队列,但是存 阅读全文
posted @ 2021-07-14 17:47 沧海一声笑rush 阅读(170) 评论(0) 推荐(0) 编辑
摘要:切片和结构体的声明 切片的扩容,只有使用 append 的时候管用 指针如果没有声明指向哪里,那么就是 nil 结构体使用 type M struct , 匿名结构体使用var M struct { } 来声明 报错infinite recursive call 无限递归调用 map 不需要使用数组 阅读全文
posted @ 2021-07-13 19:40 沧海一声笑rush 阅读(48) 评论(0) 推荐(0) 编辑
摘要:基于session 的方式存在的问题 服务器端需要存储 session,并且由于 Session 需要经常快速查找,所以通常存储在内存中,或者内存数据库中。如果同时又大量用户在线,就会占用大量的服务器资源 当需要扩展时候,创建 session 的服务器可能不是验证 session的服务器,所以还需要 阅读全文
posted @ 2021-07-12 21:42 沧海一声笑rush 阅读(73) 评论(0) 推荐(0) 编辑
摘要:概念 并发是同一时间段执行多个任务,(你同时和两个女生聊天) 并行是同一时刻执行多个任务,(你和你朋友在和女生聊天) Go 语言的并发是通过 goroutine 实现的,goroutine 类似于线程,属于用户态的线程(程序员自己编写的) ,我们可以根据需要创建成千上万的 goroutine 并发工 阅读全文
posted @ 2021-07-12 03:35 沧海一声笑rush 阅读(87) 评论(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 阅读(319) 评论(0) 推荐(0) 编辑
摘要:Zap 日志库 常见的日志级别 panic:(error)错误已经发生,会导致系统退出 error:错误虽然发生,但是不影响系统的继续进行 warn:表明会出现潜在的错误 info:通知你一声 debug:调试输出,对于调试应用程序非常用帮助 基本配置 登录测试 package main impor 阅读全文
posted @ 2021-07-10 20:56 沧海一声笑rush 阅读(173) 评论(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 阅读(196) 评论(0) 推荐(0) 编辑
摘要:# 锁 ## 排他锁和共享锁(按照锁的属性分) - 排他锁 ,也叫 写锁 简称 `X锁`,即事务 A 读数据对象加上 `X锁`以后,只能有事务 A 完成读取和修改操作,其他任何事物在此期间,都不能再加任何类型的锁,直到锁释放为停止。 - 共享锁, 又叫 读锁,简称`S锁`,即事务 A 可以对对象添加 阅读全文
posted @ 2021-07-10 00:27 沧海一声笑rush 阅读(59) 评论(0) 推荐(0) 编辑
摘要:redis 雪崩、穿透、击穿的区别 这都是涉及到服务器的高可用的部分。他们之间的区别如下 雪崩:同一时刻,大量的key 过期 穿透:就是访问的 redis 里面都没有,直接 击穿:某一个热点的 key 突然过期了,所有的请求都打到了 mysql 上 缓存雪崩 产生雪崩的是指一个时间段内,大量的key 阅读全文
posted @ 2021-07-09 19:24 沧海一声笑rush 阅读(873) 评论(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 阅读(216) 评论(0) 推荐(0) 编辑
摘要:## 创建、增、删、改 ### 创建数据库和表 ```sql create database school; #创建数据库 use school; #使用数据库 ### 创建班级表 ,注意最后一行没有逗号 CREATE TABLE `school`.`class` ( `id` int NOT NU 阅读全文
posted @ 2021-07-08 03:38 沧海一声笑rush 阅读(80) 评论(0) 推荐(0) 编辑
摘要:DockerFile 构建一个简单的镜像 # 可以通过冒号添加引用 FROM alpine # 在哪个目录下工作 WORKDIR /app # 把src下的文件,复制到 workdir 中 ,Add可以使用url COPY src/ /app # 将echo复制到 1.txt下 # 构建的时候执行的 阅读全文
posted @ 2021-07-06 21:57 沧海一声笑rush 阅读(53) 评论(0) 推荐(0) 编辑
摘要:一.历史原因 go发展史上采用过的一些方法 go 1.3 之前使用标记清除 go 1.5 三色标记法 go 1.8 三色标记法 + 混合写屏障机制 垃圾回收设计的名词 自动释放 垃圾回收 三色标记法 内存管理 STW(stop the world) 全部停止执行 标记清除法 标记清除法过程 暂停程序 阅读全文
posted @ 2021-07-04 21:26 沧海一声笑rush 阅读(421) 评论(0) 推荐(0) 编辑
摘要:镜像概念 解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。 Docker 本身就是一个容器运载体,我们把应用程序和配置依赖打包形成一个可交付的运行环境,这个打包好的运行环境就是 image 镜像文件,只有通过这个文件才能形成 docker 容器, image 文件可 阅读全文
posted @ 2021-07-04 21:24 沧海一声笑rush 阅读(71) 评论(0) 推荐(0) 编辑
摘要:Socket 编程 服务器端代码 package main import ( "fmt" "net" ) func processConn(conn net.Conn) { // 与客户端通信 for { var tmp [128]byte n, err := conn.Read(tmp[:]) i 阅读全文
posted @ 2021-07-04 16:00 沧海一声笑rush 阅读(150) 评论(0) 推荐(0) 编辑
摘要:# 索引的数据结构 索引是一种排好序的数据结构,比如排好序的二叉树, ### 几种可供选择的索引树 - 二叉树 - 红黑树 - Hash 索引 - B+ 树 ## B树和B+树的特点 **B树的特点:** 1. 节点排序 2. 一个节点可以存多个元素,多个元素也是排好序的。 **B+树的特点:** 阅读全文
posted @ 2021-07-04 00:58 沧海一声笑rush 阅读(181) 评论(0) 推荐(0) 编辑
摘要:内存空间在逻辑上分为三部分,代码区,静态变量区,动态数据区,其中动态数据区又分为堆区和栈区 阅读全文
posted @ 2021-07-01 17:03 沧海一声笑rush 阅读(40) 评论(0) 推荐(0) 编辑
摘要:一. Golang协程调度器得由来 1.1多线程和多进程带来的弊端 以单核操作系统为例,根据时间片轮转机制,不同的线程就要不断的切换,那么 线程的数量越多,切换成本也就越大,也就越浪费,同样,多线程随着同步竞争(如锁、竞争资源冲突等),让开发变得越来越复杂 简单点来说,携程就是用户级的多线程。 而且 阅读全文
posted @ 2021-07-01 14:36 沧海一声笑rush 阅读(361) 评论(0) 推荐(0) 编辑