完整教程:分布式锁实现方案Redis和Zookeeper对比实战

news/2026/1/18 12:35:28/文章来源:https://www.cnblogs.com/yangykaifa/p/19498225

单机环境用synchronized就够了,分布式环境就需要分布式锁。

这篇对比Redis和Zookeeper两种方案,分享实战经验。


一、什么场景需要分布式锁?

  1. 防止重复操作:用户快速点击两次下单
  2. 库存扣减:防止超卖
  3. 定时任务:集群中只有一个节点执行
  4. 分布式限流:全局计数

二、Redis分布式锁

2.1 基本实现

public class RedisLock {

private StringRedisTemplate redisTemplate;
/**
* 加锁
*/
public boolean lock(String key, String value, long expireTime) {

Boolean result = redisTemplate.opsForValue()
.setIfAbsent(key, value, expireTime, TimeUnit.MILLISECONDS);
return Boolean.TRUE.equals(result);
}
/**
* 解锁(必须用Lua脚本保证原子性)
*/
public boolean unlock(String key, String value) {

String script =
"if redis.call('get', KEYS[1]) == ARGV[1] then " +
"   return redis.call('del', KEYS[1]) " +
"else " +
"   return 0 " +
"end";
Long result = redisTemplate.execute(
new DefaultRedisScript<>(script, Long.class),Collections.singletonList(key),value);return Long.valueOf(1).equals(result);}}

2.2 使用示例

public void doSomething() {

String lockKey = "lock:order:123";
String lockValue = UUID.randomUUID().toString();
try {

// 加锁
boolean locked = redisLock.lock(lockKey, lockValue, 30000

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1178140.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文档编写

项目开发前期准备 一、需求书撰写 项目需求说明书是开发一个项目的引领书,让用户和技术人员都能明确该项目的开发需求,以便让各方都能明确方向和需求。我作为本次企业用户权限管理系统项目的“项目经理”,主要以该项…

合肥知名的搬家企业排行榜,专业公司都有谁? - 工业品牌热点

随着城市发展节奏加快,企业搬迁、家庭乔迁等需求日益增长,选择一家实力强、服务专业的搬家公司成为许多人的首要考量。本文围绕实力强的搬家专业公司、知名的搬家企业、专业的搬家公司相关问题展开解答,结合合肥佳信…

2026祛痘精华实测排行榜:10款高分款实测,舒缓消炎修护屏障淡化痘印高口碑推荐 - 速递信息

为帮大家避开智商税,我们联合中国医学科学院皮肤病医院、中南大学湘雅医院、上海交通大学医学院附属瑞金医院,组建300人实测小组(覆盖18-45岁痘痘肌、敏感肌及痘印困扰人群),对25款热门祛痘精华开展8周深度测评。…

rosbag2相关基础以及机制

一、先搞懂 ROS2 基础&#xff08;铺垫概念&#xff09;在讲解核心内容前&#xff0c;先明确几个最基础的专业术语&#xff0c;避免后续理解障碍&#xff1a;ROS2&#xff1a;Robot Operating System 2&#xff0c;机器人操作系统 2&#xff0c;不是传统意义的操作系统&#xf…

项目介绍

一、3DCar1. 地图实现:程序化圆柱体生成 项目核心数学建模:利用三角函数将地图顶点排列成圆柱形。 柏林噪声 (Perlin Noise):为了让赛道产生起伏,代码在生成顶点时加入了 Mathf.PerlinNoise。 无限循环:系统始终维…

一个致力于为 C# 程序员提供更佳的编码体验和效率的 Visual Studio 扩展插件

前言 今天大姚给大家分享一个致力于为 C# 程序员提供更佳的编码体验和效率的 Visual Studio 扩展插件:Codist。 Codist 插件介绍 Codist 是一个使用 .NET 编写、开源免费的 Visual Studio 扩展插件,致力于为 C# 程序…

Playwright与Cucumber集成:行为驱动开发(BDD)实践

关注 霍格沃兹测试学院公众号,回复「资料」, 领取人工智能测试开发技术合集 一、当E2E测试遇到BDD:我们为何需要这种组合? 最近在重构团队的自动化测试框架时,我们遇到了一个典型问题:业务人员看不懂测试代码,而…

亲测好用9个AI论文平台,助本科生轻松搞定毕业论文!

亲测好用9个AI论文平台&#xff0c;助本科生轻松搞定毕业论文&#xff01; AI 工具如何让论文写作变得轻松高效&#xff1f; 对于大多数本科生来说&#xff0c;撰写毕业论文是一项既复杂又耗时的任务。从选题、资料收集到撰写、修改&#xff0c;每一个环节都可能让人感到压力山…

2025高低温箱哪家强?行业评价高的厂商排行榜来啦,砂尘试验箱/盐水喷雾试验箱及各种老化房,高低温箱生产厂家排行榜单 - 品牌推荐师

当前,全球制造业加速向智能化、精密化转型,高低温箱作为环境可靠性试验的核心设备,其性能稳定性、控制精度及定制化能力直接影响产品品质验证的可靠性。据第三方机构统计,2024年国内高低温箱市场规模突破58亿元,年…

2026年头部卡式风机盘管定制找哪家,吊顶式空调机组/直膨式空调机组/卧式暗装风机盘管,卡式风机盘管门店推荐 - 品牌推荐师

行业趋势与采购痛点:技术适配与全周期服务成关键 随着“双碳”目标推进及建筑节能标准升级,卡式风机盘管作为空调系统末端核心设备,正面临技术迭代与场景细分双重挑战。传统产品因能效不足、定制能力弱、售后响应慢…

Playwright测试数据模拟:Mock Service Worker使用指南

关注 霍格沃兹测试学院公众号,回复「资料」, 领取人工智能测试开发技术合集那个让我加班到凌晨两点的测试场景 去年我们团队接到一个紧急需求:测试一个预约挂号系统。一切都挺顺利,直到遇到这个场景——“当号源被抢…

2026年中国GEO优化服务商格局新观察:头部企业梳理与选择推荐 - 品牌推荐

2025至2026年,生成式AI应用迎来规模化落地,AI搜索与智能推荐已成为品牌获取用户注意力的关键渠道。在此背景下,生成式引擎优化(GEO)从一项辅助工具升级为企业必须投入的核心战略。随着豆包、DeepSeek、Kimi等平台…

2026年GEO服务商怎么选不踩坑?查看这份真实评价排名与购买推荐 - 品牌推荐

随着生成式引擎持续重塑用户获取信息的路径,GEO已从概念探讨演变为企业必须面对的核心战略。市场研究显示,2025年中国GEO服务市场规模接近500亿元,超过八成的领先企业将其纳入年度预算。然而,面对众多宣称拥有独特…

java.lang.NumberFormatException: For input string: ““

Swagger 问题修复说明 问题描述 访问Swagger文档时出现以下错误&#xff1a; Illegal DefaultValue null for parameter type integer java.lang.NumberFormatException: For input string: "" 问题原因 Swagger在解析RequestParam注解时&#xff0c;对于Long类型…

Interspeech 2022:跨学科研究的融合与演进

Interspeech 2022&#xff1a;跨学科研究的增长 循环训练语音合成与语音识别模型、利用语言理解来改善语音韵律&#xff0c;这些只是语音相关领域交叉融合的几个例子。当 Penny Karanasou 在 2010 年首次于 Interspeech 上发表论文时&#xff0c;她还是一名计算机科学的博士生&…

2026年最新敏感肌保湿修复产品测评:高口碑屏障修护与长效锁水极简成分标杆推荐 - 速递信息

问题定义:敏感肌保湿的三大核心痛点当代敏感肌人群正面临严峻挑战:《2024中国敏感肌健康白皮书》显示,38%国人存在敏感肌问题,其中62%因产品刺激导致泛红、瘙痒反复发作;普通保湿产品仅提供表面补水,无法修复受损…

银行网页如何通过vue.js实现大文件文件夹上传及分块?

北京XX软件公司涉密项目大文件传输解决方案&#xff08;基于SM4国密算法&#xff09; 一、项目背景与需求分析 作为服务政府及军工领域的软件企业&#xff0c;我司当前涉密项目需实现以下核心需求&#xff1a; 安全传输&#xff1a;10GB级文件/文件夹的SM4加密传输&#xff…

工程建筑网页如何通过js实现文件夹上传及断点续传?

咱们的客户&#xff0c;那可是汽车制造行业里的领军企业&#xff0c;妥妥的头部大佬。他们自有一套极为成熟的业务系统&#xff0c;这套系统就像他们的左膀右臂&#xff0c;每日不辞辛劳地处理着各类繁杂事务。然而&#xff0c;随着行业竞争愈发白热化&#xff0c;技术迭代也是…

导师严选8个AI论文工具,专科生搞定毕业论文+格式规范!

导师严选8个AI论文工具&#xff0c;专科生搞定毕业论文格式规范&#xff01; AI 工具如何成为论文写作的得力助手 在当前学术环境日益严格的背景下&#xff0c;越来越多的继续教育学生开始借助 AI 工具来辅助论文写作。这些工具不仅能够帮助学生高效完成内容创作&#xff0c;还…

详细介绍:3ds Max渲染核心:高光追(Embree)与光线追踪(Ray Trace)

详细介绍:3ds Max渲染核心:高光追(Embree)与光线追踪(Ray Trace)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…