- 博客(7)
- 收藏
- 关注
原创 一致性协议
2PC(Two-Phase Commit)阶段一:提交事务请求(准备阶段)阶段二:执行事务提交(执行阶段)优点:原理简单,实现方便缺点:同步阻塞,协调者单点问题,脑裂,太过保守3PC(Three-Phase Commit)将二阶段提交协议的“提交事务请求”过程一分为二,形成了由CanCommit、PreCommit、doCommit三个阶段组成的事务处理协议优缺点:相对于2PC,3PC对于协调者(Coordinator)和参与者(Partcipant)都设置了超时时间,而2PC只有
2022-04-26 12:04:54
132
原创 Go 限流—滑动窗口
slidingwindow 安装$ go get -u github.com/RussellLuo/slidingwindow快速开始1、本地限流package mainimport ( "fmt" "github.com/RussellLuo/slidingwindow" "time")const ( d = 100 * time.Millisecond windowSize = time.Second)var ( t0 = time.Now().Tr
2021-10-20 21:06:48
510
原创 Go调用lua脚本执行redis命令
目录使用lua脚本好处redis调用脚本命令1、EVAL2、SCRIPTredigo客户端调用lua使用lua脚本好处主要优势: 减少网络开销:多个请求通过脚本一次发送,减少网络延迟原子操作:将脚本作为一个整体执行,中间不会插入其他命令,无需使用事务复用:客户端发送的脚本永久存在redis中,其他客户端可以复用脚本可嵌入性:可嵌入JAVA,C#等多种编程语言,支持不同操作系统跨平台交互redis调用脚本命令1、EVALEVAL script numkeys key [key …] ar
2021-10-14 21:50:02
719
原创 GoLand 软件使用
GoLand 软件使用插件MultiHighlight 高亮(command + ')ChineseMakefile supportEmmyLua开发机代码同步
2021-10-09 14:23:31
178
原创 Go 标准库学习-flag
Go 标准库学习——flag前言flag包实现了命令行参数的解析。一、快速使用1. flag.Type定义指针变量来接收解析结果package mainimport ( "flag" "fmt" "time")var ( intFlag *int boolFlag *bool stringFlag *string timeFlag *time.Duration)func init() { intFlag = flag.Int("intFlag"
2021-09-30 11:58:35
438
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人