0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

手撸了个Redis分布式锁

小林coding 来源:小林coding 作者:小林coding 2022-11-03 14:44 次阅读

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

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

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

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

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

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

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

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

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

6de1e1bc-5b3b-11ed-a3b6-dac502259ad0.png

那么,问题来了:

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

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

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

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

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程
    +关注

    关注

    88

    文章

    3637

    浏览量

    93934
  • Redis
    +关注

    关注

    0

    文章

    378

    浏览量

    10920

原文标题:手撸了个 Redis 分布式锁,我悟了!

文章出处:【微信号:小林coding,微信公众号:小林coding】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    分布式云化数据库有哪些类型

    分布式云化数据库有哪些类型?分布式云化数据库主要类型包括:关系型分布式数据库、非关系型分布式数据库、新SQL分布式数据库、以列方式存储数据、
    的头像 发表于 01-15 09:43 100次阅读

    基于ptp的分布式系统设计

    在现代分布式系统中,精确的时间同步对于确保数据一致性、系统稳定性和性能至关重要。PTP(Precision Time Protocol)是一种网络协议,用于在分布式系统中实现高精度的时间同步
    的头像 发表于 12-29 10:09 160次阅读

    HarmonyOS Next 应用元服务开发-分布式数据对象迁移数据权限与基础数据

    提供async版本供该场景使用。 当前,wantParams中“sessionId”字段在迁移流程中被系统占用,建议开发者在wantParams中定义其他key值存储该分布式数据对象生成的id,避免
    发表于 12-24 09:40

    分布式通信的原理和实现高效分布式通信背后的技术NVLink的演进

    大型模型的大小已经超出了单个 GPU 的范围。所以就需要实现跨多个 GPU 的模型训练,这种训练方式就涉及到了分布式通信和 NVLink。 当谈及分布式通信和 NVLink 时,我们进入了一引人入胜且不断演进的技术领域,下面我
    的头像 发表于 11-18 09:39 605次阅读
    <b class='flag-5'>分布式</b>通信的原理和实现高效<b class='flag-5'>分布式</b>通信背后的技术NVLink的演进

    分布式光纤测温解决方案

    分布式光纤测温解决方案
    的头像 发表于 11-12 01:02 216次阅读
    <b class='flag-5'>分布式</b>光纤测温解决方案

    浅谈屋顶分布式光伏发电技术的设计与应用

    【摘要】为了缓解城市用电紧张袁降低人们的用电成本,可以在工业园区、办公楼屋顶等场所应用屋顶分布式光伏发电技术进行就近转换、并网发电袁充分利用建筑物屋顶的太阳资源。概述屋顶分布式光伏发电技术,分析屋顶
    的头像 发表于 11-11 15:10 986次阅读
    浅谈屋顶<b class='flag-5'>分布式</b>光伏发电技术的设计与应用

    分布式光纤测温是什么?应用领域是?

    分布式光纤测温是一种先进的温度测量技术,它利用光纤的拉曼散射原理进行温度监测。以下是对分布式光纤测温的详细介绍: 一、基本原理 分布式光纤测温的原理基于光纤的拉曼散射效应。当光纤某处的温度发生变化
    的头像 发表于 10-24 15:30 494次阅读
    <b class='flag-5'>分布式</b>光纤测温是什么?应用领域是?

    分布式输电线路故障定位中的分布式是指什么

    所谓分布式指的是产品的部署方式,是相对于集中式而言的。 一、部署方式 分散安装:分布式输电线路故障定位系统中的采集装置需要安装在输电线路的多个位置,通常是每隔一定距离设置一监测点,以确保对整条线路
    的头像 发表于 10-16 11:39 334次阅读
    <b class='flag-5'>分布式</b>输电线路故障定位中的<b class='flag-5'>分布式</b>是指什么

    远程IO与分布式IO的区别

    在工业自动化和控制系统设计中,远程IO(Input/Output)和分布式IO是两重要的概念。它们各自具有独特的特点和优势,适用于不同的应用场景。本文将详细探讨远程IO与分布式IO的区别,包括位置
    的头像 发表于 06-15 15:57 2804次阅读

    分布式能源是什么意思?分布式能源有什么优势?

    分布式能源指的是在用户端或靠近用户端的小型能源供应系统,它能够直接满足用户的多种能源需求,如电力、热能和冷能。
    的头像 发表于 04-29 17:26 2474次阅读

    HarmonyOS开发实例:【分布式数据服务】

    分布式数据服务(Distributed Data Service,DDS)为应用程序提供不同设备间数据分布式的能力。
    的头像 发表于 04-18 10:18 789次阅读
    HarmonyOS开发实例:【<b class='flag-5'>分布式</b>数据服务】

    HarmonyOS实战案例:【分布式账本】

    Demo基于Open Harmony系统使用ETS语言进行编写,本Demo主要通过设备认证、分布式拉起、分布式数据管理等功能来实现。
    的头像 发表于 04-12 16:40 1384次阅读
    HarmonyOS实战案例:【<b class='flag-5'>分布式</b>账本】

    OpenHarmony开发案例:【分布式计算器】

    使用分布式能力实现简单的计算器应用,可以进行简单的数值计算,支持远程拉起另一设备的计算器应用,两计算器应用进行协同计算。
    的头像 发表于 04-11 15:24 1103次阅读
    OpenHarmony开发案例:【<b class='flag-5'>分布式</b>计算器】

    Redis实现分布式多规则限流的方式介绍

    市面上很多介绍 Redis 如何实现限流的,但是大部分都有一缺点,就是只能实现单一的限流,比如 1 分钟访问 1 次或者 60 分钟访问 10 次这种,但是如果想一接口两种规则都需要满足呢,我们的项目又是
    的头像 发表于 02-26 10:07 552次阅读
    <b class='flag-5'>Redis</b>实现<b class='flag-5'>分布式</b>多规则限流的方式介绍

    分布式控制系统的七功能和应用

    分布式控制系统的七功能和应用  分布式控制系统是一种由多个独立的控制单元组成的系统,每个控制单元负责系统中的一部分功能。它具有分散的、自治的特性,可以提高系统的可靠性、灵活性和可扩展性。分布
    的头像 发表于 02-01 10:51 1538次阅读