Golang Redis 发布订阅

go-redis 允许发布消息和订阅频道。它还会在发生网络错误时自动重新连接到 Redis 服务器。

发布消息

err := rdb.Publish(ctx, "mychannel1", "payload").Err()
if err != nil {
	panic(err)
}

订阅频道

// There is no error because go-redis automatically reconnects on error.
pubsub := rdb.Subscribe(ctx, "mychannel1")

// Close the subscription when we are done.
defer pubsub.Close()

接收消息

for {
	msg, err := pubsub.ReceiveMessage(ctx)
	if err != nil {
		panic(err)
	}

	fmt.Println(msg.Channel, msg.Payload)
}

但最简单的方法是使用 Go 频道,该频道与订阅一起关闭

ch := pubsub.Channel()

for msg := range ch {
	fmt.Println(msg.Channel, msg.Payload)
}

监控性能

监控 Redis 数据库的性能对于维护系统的整体健康、效率和可靠性至关重要。适当的性能监控有助于在潜在问题导致服务中断或性能下降之前识别和解决这些问题。

Uptrace 是 DataDog 替代方案在新窗口中打开,支持分布式跟踪、指标和日志。您可以使用它来监控应用程序并排查问题。

Uptrace Overview

Uptrace 带有一个直观的查询构建器、丰富的仪表盘、具有通知的警报规则,以及大多数语言和框架的集成。

Uptrace 可以在单台服务器上处理数十亿个跨度和指标,并允许您以 10 倍更低的成本监控您的应用程序。

只需几分钟,您就可以通过访问 云演示在新窗口中打开(无需登录)或使用 Docker在新窗口中打开 在本地运行它。源代码可在 GitHub在新窗口中打开 上获取。