用 Go 实现 Redis 分布式锁,我悟了!!
2022-11-6 20:2:7 Author: Go语言中文网(查看原文) 阅读量:37 收藏

面过大厂的人都知道,分布式基本上是必考点。而面试只要问到分布式,必问分布式锁。

毕竟在当前互联网,分布式、高并发已经是业务要求的常态。而在分布式场景中,分布式锁是解决数据一致性和安全性的一个重要手段。

实现分布式锁的方式有很多,其中 Redis 是最常见的一种。而相较于 Java + Redis 的方案,我个人更倾向于 Go+Redis,从编程难易程度上来说,要简单得多。

比如 Go 里面有以下特性可用:

  • context:可以同时监听超时、用户主动取消,或者在重试的时候触发重试时机

  • channel + select:可以同时监听多个信号。其实 context 也会发送超时信号,或者用户主动取消信号

  • Go 还支持了 singleflight,所以也不需要自己写

  • 另外,Go goroutine 非常轻量,可以在分布式锁里面随便开。



以下面的 demo 为例,里面一大堆的“select - case”,即便 Go 有这些工具可用,看起来依旧很复杂。

那么,问题来了:

  • 如何用 Go+Redis 实现一个生产环境可用的分布式锁?

  • 里面有哪些细节需要关注?

  • 怎么设计测试用例,完成测试?

  • 又要怎么优化写出来的分布式锁的性能?

在这给你推荐一个,我最近看得很受启发的小课——《3 小时轻松用 Go 实现 Redis 分布式锁》,作者邓明(某知名国际互联网公司高级工程师),带你从 0 到 1 手撸一个分布式锁。

好好听课,我觉得你最起码会有以下收获:

✅掌握分布式锁的基本原理和实现

✅掌握分布式锁超时、续约、重试等核心知识点

✅掌握分布式锁的测试要点

✅掌握分布式锁的性能优化要点

✅掌握如何利用 Go+Redis 来实现一个生产环境可用的分布式锁

下面是课程大纲,内容很精炼,大明老师都是挑最核心的内容去讲的,是一个即报即学,即学即用的课程。

好内容不容错过,扫码立即免费报名

添加学习助理

获取优惠报名链接和配套课件

扫码报名后,千万别忘了跟学习助理要这个课程的配套学习资料:

1⃣️课程 PPT

2⃣️全套源码

还整理了一些 Go 工程师成长路上需要了解以及掌握的软硬技能,都是大佬级别的视频分享,可以帮你扫清技术盲点并对自身提升路径更为清晰。

内容比较多,大致梳理了部分要点:

每个视频也都有配套的比较详细的PPT:

扫码一键领取

添加后别着急

手动一一通过

插播一句:

这个课是「极客时间」生产的,我也是他家老用户,最让我喜欢的特点就是知识成系统,比如计算机基础系列、大数据系列、管理系列等统统有,不用你花费很多时间去网上找资料,请的讲师也都非常专业,找个好师傅,少走弯路,就是捷径。

另外,最近好几个同学都问我有没有可以系统学习 Go 的课程,他家也是有的,上面这个课程的讲师邓明,就在极客时间开了一门【Go 实战训练营】,而且这门课最近刚刚升级迭代,新增了 60 个课时,4 大技术方向。现在总共是 15 周的课程,共计 138 个课时,11 大技术方向了。

感兴趣的朋友扫码添加学习助理后,可以跟他们要一下课程大纲(很全面!妥妥的一个 Go 技能图谱了)


文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMTA4Njc0OQ==&mid=2651453673&idx=1&sn=1bf6fb1ca1eeccb0f6c57b8caee2652f&chksm=80bb261bb7ccaf0d9b08c65ecc4ef3dfbfe83ea0e3364fa31651c154a193e59ec1c176866ab9#rd
如有侵权请联系:admin#unsafe.sh