Redis 分布式锁的小细节
我们知道reids 可以通过 SET lock_key unique_value NX PX 10000 来做分布式事务锁,但其中还有些细节值得思考。 解锁解锁就是删key,为了防止解错了锁,删掉了不是自己持有的,就需要对 key 的值 uniqu...
我们知道reids 可以通过 SET lock_key unique_value NX PX 10000 来做分布式事务锁,但其中还有些细节值得思考。 解锁解锁就是删key,为了防止解错了锁,删掉了不是自己持有的,就需要对 key 的值 uniqu...
背景iLinks 目前是这样部署的: 一台线路不错的转发机 A,带DDOS。 一台线路一般,但是性能更好的真实服务器 B。 对外暴露 A 的 IP,被打时候把域名解析转到 CF,CF 直接到源站。 但我A 机器本身是没法防 CC 的,于是,本...
最简单的方法我们都知道,删除切片元素的写法是: 123func removeElementByIndex[T any](slice []T, index int) []T { return append(slice[:index], sli...
直接说结论:json里的数字会被优先解析成 float 123456789101112131415jsonData := `{ "stringKey": "Hello, world", ...
如果 func 要求入参为接口数组: func F(arr []IShape) 然后结构体X指针实现了这个接口: var _ IShape = &X{} 这时候这么写是会报错的: 12arr := []*X{...
1234567891011121314type Person interface { Say()}type A struct{}type B struct{}func (x A) Sa...
Goland的 LeetCode 插件可以让我们在 IDE 非常方便地刷题。 下面的配置可以让你更好地利用这个插件 模板的配置但是如果每次都去写一个 Main 函数去本地调试,是很不方便的。 因此我们可以借助单测,把下面我的这个模板贴到插件配置即可:...
prex + , 可以改名,但是不配置的话名字会老变 ~/.tmux.conf添加 set-option -g allow-rename off
Go 的位运算符 12345678910111213141516// 这四个就不介绍了&|>><<//^ 异或 位不一样则为1a := 5 // 二进制表示为 101b := 3 // 二进制表示为 011...
三色标记法基本原理 从程序根节点开始扫描,扫描到的标记为灰色。 广度优先的原则,从灰色标记表中,遍历所有灰色节点的下一级,将其标记为灰色。上一轮灰色表中的全部放入黑色表。 依次循环上一步。 最终白色节点说明没有被访问,需要回收。 这时候我们...