消息队列的考验:Redis有哪些解决方案?

你好,我是蒋德钧。 现在的互联网应用基本上都是采用分布式系统架构进行设计的,而很多分布式系统必备的一个基础软件就是消息队列。 消息队列要能支持组件通信消息的快速读写,而 Redis 本身支持数据的高速访问,正好可以满足消息队列的读写性能需求。不过,除了性能,消息队列还有其他的要求,所以,很多人都很关心一个问题:“Redis 适合做消息队列吗?” ...

October 18, 2022 · 19 min

异步机制:如何避免单线程模型的阻塞?

你好,我是蒋德钧。 Redis 之所以被广泛应用,很重要的一个原因就是它支持高性能访问。也正因为这样,我们必须要重视所有可能影响 Redis 性能的因素(例如命令操作、系统配置、关键机制、硬件配置等),不仅要知道具体的机制,尽可能避免性能异常的情况出现,还要提前准备好应对异常的方案。 ...

October 18, 2022 · 15 min

有一亿个keys要统计,应该用哪种集合?

你好,我是蒋德钧。 在 Web 和移动应用的业务场景中,我们经常需要保存这样一种信息:一个 key 对应了一个数据集合。我举几个例子。 手机 App 中的每天的用户登录信息:一天对应一系列用户 ID 或移动设备 ID; ...

October 18, 2022 · 16 min

指针

指针 func (w Wallet) Deposit(amount int) { fmt.Println("address of balance in Deposit is", &w.balance) w.balance += amount } 上面的示例,声明一个Deposit方法,接受者是w,如果方法被调用,接受者会被复制返回一个副本,方法体内使用的接受者的副本,所以在方法体内无论如何怎么修改接受者副本的属性,都不会影响到原接受者。 ...

October 18, 2022 · 1 min

打包环境配置

在windows下编译Mac可执行程序 go env -w CGO_ENABLED=0 go env -w GOOS=darwin go env -w GOARCH=amd64 go build main.go 在windows下发编译linux可执行程序 go env -w CGO_ENABLED=0 go env -w GOOS=linux go env -w GOARCH=amd64 go build -o study_xxqg ./ nohup ./study_xxqg > ./study_xxqg.log 2>&1 & echo $!>pid.pid 恢复windows默认值 go env -w CGO_ENABLED=1 go env -w GOOS=windows

October 18, 2022 · 1 min
总访问量 总访客数