详解redission分布式锁配置及使用,防止java服务重复提交和修改动作等问题

Posted 阿啄debugIT

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详解redission分布式锁配置及使用,防止java服务重复提交和修改动作等问题相关的知识,希望对你有一定的参考价值。

前言

在多线程的环境下,为了保证一个代码块在同一时间只能由一个线程访问,Java中我们一般可以使用synchronized语法和ReetrantLock去保证,这实际上是本地锁的方式。
但是现在公司都是流行分布式架构,在分布式环境下,如何保证不同节点的线程同步执行呢?
因此就引出了分布式锁,它是控制分布式系统之间互斥访问共享资源的一种方式。
在一个分布式系统中,多台机器上部署了多个服务,当客户端一个用户发起一个数据插入请求时,如果没有分布式锁机制保证,那么那多台机器上的多个服务可能进行并发插入操作,导致数据重复插入,对于某些不允许有多余数据的业务来说,这就会造成问题。
而分布式锁机制就是为了解决类似这类问题,保证多个服务之间互斥的访问共享资源,如果一个服务抢占了分布式锁,其他服务没获取到锁,就不进行后续操作。

分布式锁的特点

分布式锁一般有如下的特点:

  1. 互斥性: 同一时刻只能有一个线程持有锁
  2. 可重入性: 同一节点上的同一个线程如果获取了锁之后能够再次获取锁
  3. 锁超时:和J.U.C中的锁一样支持锁超时,防止死锁
  4. 高性能和高可用:

以上是关于详解redission分布式锁配置及使用,防止java服务重复提交和修改动作等问题的主要内容,如果未能解决你的问题,请参考以下文章

详解redission分布式锁配置及使用,防止java服务重复提交和修改动作等问题

详解redission分布式锁配置及使用,防止java服务重复提交和修改动作等问题

详解redission分布式锁配置及使用,防止java服务重复提交和修改动作等问题

面试题详解:怎样实现redis分布式锁?

分布式锁 Redission 介绍及使用其可重入锁 和 WatchDog 机制 和 MutiLock原理

大厂面试题详解:如何用Redis实现分布式锁?