Redis 分布式锁的小细节

我们知道reids 可以通过 SET lock_key unique_value NX PX 10000 来做分布式事务锁,但其中还有些细节值得思考。 解锁解锁就是删key,为了防止解错了锁,删掉了不是自己持有的,就需要对 key 的值 uniqu...

Redis

雷池WAF社区版安装

背景iLinks 目前是这样部署的: 一台线路不错的转发机 A,带DDOS。 一台线路一般,但是性能更好的真实服务器 B。 对外暴露 A 的 IP,被打时候把域名解析转到 CF,CF 直接到源站。 但我A 机器本身是没法防 CC 的,于是,本...

OP

Go 删除切片元素

最简单的方法我们都知道,删除切片元素的写法是: 123func removeElementByIndex[T any](slice []T, index int) []T { return append(slice[:index], sli...

Go

Go json里的数字是什么类型?

直接说结论:json里的数字会被优先解析成 float 123456789101112131415jsonData := `{ "stringKey": "Hello, world", ...

Go

Go 函数参数为接口数组时

如果 func 要求入参为接口数组: func F(arr []IShape) 然后结构体X指针实现了这个接口: var _ IShape = &X{} 这时候这么写是会报错的: 12arr := []*X{...

Go

Go 实现接口到底加不加指针?

1234567891011121314type Person interface { Say()}type A struct{}type B struct{}func (x A) Sa...

Go

Goland刷LeetCode模板

Goland的 LeetCode 插件可以让我们在 IDE 非常方便地刷题。 下面的配置可以让你更好地利用这个插件 模板的配置但是如果每次都去写一个 Main 函数去本地调试,是很不方便的。 因此我们可以借助单测,把下面我的这个模板贴到插件配置即可:...

Go

保持 tmux 窗口名更改后不变

prex + , 可以改名,但是不配置的话名字会老变 ~/.tmux.conf添加 set-option -g allow-rename off

Go 的位运算

Go 的位运算符 12345678910111213141516// 这四个就不介绍了&|>><<//^ 异或 位不一样则为1a := 5 // 二进制表示为 101b := 3 // 二进制表示为 011...

Go

Go GC

三色标记法基本原理 从程序根节点开始扫描,扫描到的标记为灰色。 广度优先的原则,从灰色标记表中,遍历所有灰色节点的下一级,将其标记为灰色。上一轮灰色表中的全部放入黑色表。 依次循环上一步。 最终白色节点说明没有被访问,需要回收。 这时候我们...

Go
1234520

2024 | ixs.im
此情此景, [随机]吟诗一首: