/images/wb.png

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

纪念一位老友

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

Go sync.Map 解读

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

高并发分布式架构演进

原文链接:https://segmentfault.com/a/1190000018626163 0. 目录和说明文章在介绍一些基本概念后,按照以下过程阐述了整个架构的演进过程: 单机架构 第一次演进:Tomc

session cookie token 的区别

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

MySQL 为什么使用 B+ 树索引

原文地址:https://juejin.cn/post/7081065180301361183 前言为什么 MySQL 采用 B+ 树作为索引? 如果纯粹的猜测 MySQL 数据库索引为什么使用 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 使

Node-RED 节点开发

概述Node-RED 是构建物联网 (IOT,Internet of Things) 应用程序的一个强大工具,其重点是简化代码块的“连接"以执行任务。它使用可视 化编程方法,允许开发人员将预定义的代码块(称为“节点”,Node) 连接起来执行

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的令牌,得先到

hugo主题标题支持emoji:smile:

解决方法hugo 在渲染时默认是不支持标题中的emoji的(有的主题也许是支持的),可以通过修改主题源码来支持。 我用的主题是LoveIt,找到 simple.html 文件,路径为 themes/LoveIt/layouts/posts/single.html 修改标题的渲染方式为 {{ .Title | emojify }},如下: 这样

TCP与UDP连接管理

TCP 协议和 UDP 协议都是工作在传输层,是为了在程序之间传递数据,数据可以是多种形式,比如视频,文本,图片等。对于 TCP 协议和 UDP 协议来说,都是一堆二进制数,只是 TCP 基于连接,而 UDP 基于非连接。 名词解释 名词 解释 SYN 同步序

JS运行机制

执行模式JS的执行模式是单线程的,当有多个任务时必须排队执行,优点是执行环境简单,缺点是性能低下,当有多个任务时,需要等待上一个任务执行完成才能执行下一个任务, 如果某个任务出现了死循环,那么就会导致程