/images/wb.png

怕什么真理无穷,进一寸有一寸的欢喜

纪念一位老友

几年前,一位好朋友去世了,九零后,跟我年纪一样。我跟他从小就认识,我们一起上的小学,一起上的初中,高中之后便联系的少了,后来我去外地读书,联系的就更少了。 那还是二零一九,那时我刚从西安来北京。一天夜里

Go 编译标签 build tag

简介在 Go 中,build tag 是添加到代码中第一行,来标识编译相关信息的,build tag 决定了当前文件是否会被当前 package 所包含,用于限制一整个文件是否应该被编译入最终的二进制文件,而不是一个文件中的部分代码片段。

minikube 安装使用

简介Kubernetes 是一个生产级别的容器编排平台和集群管理系统,不仅能够创建、调度容器,还能够监控、管理服务器,它凝聚了 Google 等大公司和开源社区的集体智慧,从而让中小型公司也可以具备轻松运维海量计算节

Go sync.Map 解读

背景项目中遇到了需要使用高并发的 map 的场景,众所周知 Go 官方的原生 map 是不支持并发读写的,直接并发的读写很容易触发 panic。 解决的办法有两个: 自己配一把锁sync.Mutex或者更加考究一点配一把读写锁s

MySQL 常见问题(三)

InnoDB、MyISAM的区别 磁盘文件不同: MyISAM引擎的表会生成三个磁盘文件: table_name.frm 该文件中存储表的结构信息。table_name.MYD 该文件中存储表的行数据。table_name.MYI 该文件

session cookie token 的区别

Cookie 和 SessionHTTP 协议是一种无状态协议,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器并不知道客户端的历史请求记录;Session 和 Cookie 的主要目的就是为了弥补 HTTP 的无状态特性。 Session 是什么客户端请求服务端,

MySQL 常见问题(二)

索引数据结构为什么不使用红黑树或B树在 InnoDB 引擎中,索引的底层数据结构是 B+ 树。MySQL 的数据是存储在硬盘的,在查询时一般是不能「一次性」把全部数据加载到内存中。红黑树是「二叉查找树」的变种,一个 Node 节点只

MySQL 为什么使用 B+ 树索引

前言为什么 MySQL 采用 B+ 树作为索引? 如果纯粹的猜测 MySQL 数据库索引为什么使用 B+ 树?那么围绕这个问题的回答通常一定是围绕 B+ 树本身是什么,有什么优势这两点去解释这个问题。 这不是我开始这么去想的,看了很多文章都是从这

mysql workbench 查看触发器

mysql workbench 是官方推荐的数据库工具,用了很长时间却一直不知道触发器在哪儿😢。 触发器是对单个表的操作,而不是整个数据库的操作,所以 Alter Table 就可以看到触发器: 图1 图2 点这个扳手图标也可以看到触发器,跟 Alter Table 效果一样: 图

Redis 缓存击穿、缓存穿透、缓存雪崩

缓存击穿高并发流量,访问的这个数据是热点数据,请求的数据在 DB 中存在,但是 Redis 存的那一份已经过期,后端需要从 DB 从加载数据并写到 Redis。 总结起来就是:单一热点数据、高并发、数据失效。 缓存击穿 解决方案 过期

Go GC 垃圾回收

垃圾回收(Garbage Collection,GC)是编程语言中提供的自动的内存管理机制,自动释放不需要的内存对象,让出存储器资源。GC 过程中无需程序员手动执行。 GC 机制在现代很多编程语言都支持,GC 能

Github Actions replace env vars in file

Github Actions 是个好东西😀,最近在使用的时候有个需求是,我项目不想把设置成私有的,但是有些配置又比较私密,比如 github 的 Personal access token,这种配置就不能暴露出来。 呃,这种需求前辈们估计也遇到过,github actions marketplace 是个好地

Gitalk 初始化 issue

在用 Gitalk 作为个人博客评论系统时,发现有个恶心的点是,每篇文章必须手动初始化一个 issue 或是登录 github 后,把文章一个一个点开界面去初始化 issue,不然就会出现以下的提示 no issus 个人觉得这件事情非常麻烦,Gitalk 使

hugo algolia Unreachable hosts

最近在使用 hugo algolia 时,在 github actions 同步索引到 algolia 时总是出现这样的错误: action error list Unreachable hosts 我用的 action 插件是Algolia Index Uploader,找了半天发现是参数 algolia_index_id 写的有问题😥: algolia_index_id 填的值 上传成功后可以去 algolia 官网查看效果: Settings -> Applications -> 进

互联网协议简述

概述 五层模型互联网的实现,分成好几层。每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持。 用户接触到的,只是最上面的一层,根本没有感觉到下面的层。理解互联网,需要从最下层开始,自下而上理解每一

OAuth2.0的理解与应用

什么是 OAuth2.0OAuth 的核心就是向第三方应用颁发令牌,比如网站A想用Github的信息,那么对于Github来说,网站A就是第三方应用。 第三方应用申请令牌之前,都必须先到系统备案,比如申请Github的令牌,得先到