[Go] redis 限速器

go-redis/redis_rate 库实现了一个漏桶调度算法(又名通用信元速率算法)。 安装 1 go get github.com/go-redis/redis_rate/v10 使用 1 2 3 4 5 6 7 8 9 10 11 12 13 rdb := redis.NewClient(&redis.Options{ Addr: "localhost:6379", }) limiter := redis_rate.NewLimiter(rdb) res, err := limiter.Allow(ctx, "project:123", redis_rate.PerSecond(10)) if err != nil { panic(err) } fmt.Println("allowed",

[Go] 单元测试覆盖率

测试覆盖率是代码质量的一个非常重要的衡量指标。 在 golang 中可以使用 go test 运行单元测试,并输出代码测试覆盖率报告。 进入项目目录,执行下面命令,输出当前

在macOS上启动MySQL

在macOS上启动MySQL 在macOS上启动MySQL服务,可以使用内置的mysql.server脚本,该脚本通常位于 /usr/local/mysql/support-files 目录下。 如果是通过

[Go] examples for the mongo-go-driver mock

examples for the mongo-go-driver mock 在使用 mongo-go-driver 时,需要对mongo数据库操作模拟单元测试用例, 使用 testify 或 genmock 中的 mock 都需要实现mock接口。 而 mongo-go-driver 官方有一个 mtest 包,提供更好的实现

[Go] 在go中使用redis分布式锁

Simplified distributed locking implementation using Redis GoDoc 分布式锁使用示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54