400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

SpringBoot整合Redis实现分布式锁的方法-创新互联

创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!

站在用户的角度思考问题,与客户深入沟通,找到杭锦网站设计与杭锦网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站制作、做网站、企业官网、英文网站、手机端网站、网站推广、申请域名、网页空间、企业邮箱。业务覆盖杭锦地区。

这篇文章将为大家详细讲解有关SpringBoot整合Redis实现分布式锁的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

前言

最近在做分块上传的业务,使用到了Redis来维护上传过程中的分块编号。

每上传完成一个分块就获取一下文件的分块集合,加入新上传的编号,手动接口测试下是没有问题的,前端通过并发上传调用就出现问题了,并发的get再set,就会存在覆盖写现象,导致最后的分块数据不对,不能触发分块合并请求。

遇到并发二话不说先上锁,针对执行代码块加了一个JVM锁之后问题就解决了。

仔细一想还是不太对,项目是分布式部署的,做了负载均衡,一个节点的代码被锁住了,请求轮询到其他节点还是可以进行覆盖写,并没有解决到问题啊

没办法,只有用上分布式锁了。之前对于分布式锁的理论还是很熟悉的,没有比较好的应用场景就没写过具体代码,趁这个机会就学习使用一下分布式锁。

理论

分布式锁是控制分布式系统之间同步访问共享资源的一种方式。是为了解决分布式系统中,不同的系统或是同一个系统的不同主机共享同一个资源的问题,它通常会采用互斥来保证程序的一致性

SpringBoot整合Redis实现分布式锁的方法

通常的实现方式有三种:

为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件:

本文就使用的是Redis的setnx实现,如果Redis是多机版的可以去了解下Radssion,封装的就特别的好,也是官方推荐的

代码

1. 加依赖

引入Spring Boot和Redis整合的快速使用依赖

 
      org.springframework.boot
      spring-boot-starter-data-redis
 

当前标题:SpringBoot整合Redis实现分布式锁的方法-创新互联
分享URL:http://mbwzsj.com/article/dpphed.html

其他资讯

让你的专属顾问为你服务