CN113407553A - 一种分布式锁的实现方法、系统、设备及存储介质 - Google Patents
一种分布式锁的实现方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN113407553A CN113407553A CN202110526501.3A CN202110526501A CN113407553A CN 113407553 A CN113407553 A CN 113407553A CN 202110526501 A CN202110526501 A CN 202110526501A CN 113407553 A CN113407553 A CN 113407553A
- Authority
- CN
- China
- Prior art keywords
- annotation
- distributed lock
- class
- distributed
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种分布式锁的实现方法、系统、设备及存储介质,其中,方法包括:设置目标注解,通过同步枚举定义分布式锁的属性信息;在Redis操作类上定义获取分布式锁和释放分布式锁;定义切面类,在所述切面类中依次添加声明注解、切面注解和命令注解,配合Spring框架中的事务性注解,并设置所述切面类和事务性注解的执行顺序;在待加锁的方法中添加所述目标注解。本发明能够通过目标注解实现自动加锁,简化加锁和释放锁的代码,提高工作效率,便于后期维护。
Description
技术领域
本发明涉及软件工程技术领域,尤其涉及一种分布式锁的实现方法、系统、设备及存储介质。
背景技术
目前大型网站及应用都是分布式部署的,而分布式场景中的数据一致性问题一直是比较重要的话题。在大多数场景中为了保证数据的最终一致性,需要很多技术方案的支持,例如分布式事务、分布式锁等。其中,分布式锁是为了保证一个方法在同一时间内只能被一个线程执行。
现有分布式锁的实现方式有:基于数据库的实现方式、基于zookeeper的实现方式和基于Redis的实现方式。其中,基于数据库实现分布式锁的方式,存在使用分布式锁的效率较低,容易造成死锁的问题;基于zookeeper实现分布式锁的方式效率较高,但是需要zookeeper的第三方插件;而基于Redis实现分布式锁的方式,性能较好,且不需要应用第三方插件,因此,目前大多数企业也都是采用Redis实现分布式锁。
但是在现有技术中,使用Redis实现分布式锁的过程中,需要在代码中多次重复地添加获取分布式锁和释放分布式锁的代码,导致获取锁和释放锁的过程较为繁琐,效率低,且不便于后期维护。
发明内容
基于此,有必要针对上述技术问题,提供一种分布式锁的实现方法、系统、设备及存储介质。
一种分布式锁的实现方法,包括以下步骤:设置目标注解,通过同步枚举定义分布式锁的属性信息;在Redis操作类上定义获取分布式锁和释放分布式锁;定义切面类,在所述切面类中依次添加声明注解、切面注解和命令注解,配合Spring框架中的事务性注解,并设置所述切面类和事务性注解的执行顺序;在待加锁的方法中添加所述目标注解。
在其中一个实施例中,所述设置目标注解,通过同步枚举定义分布式锁的属性信息,具体包括:所述属性信息包括分布式锁的字符串类型、轮询次数、轮询间隔时间和超时时间。
在其中一个实施例中,所述在Redis操作类上定义获取分布式锁和释放分布式锁,具体包括:定义获取分布式锁时,根据获取用户发出的请求识别请求标识,根据所述请求标识获取分布式锁,设置分布式锁的获取超时时长;若未超过所述获取超时时长,则通过UUID方法随机生成字符串作为所述分布式锁的value值,并返回获取分布式锁的业务代码;若超过所述获取超时时长,则返回获取失败的提示。
在其中一个实施例中,所述在Redis操作类上定义获取分布式锁和释放分布式锁,具体包括:定义释放分布式锁时,根据释放用户发出的释放请求识别请求标识,根据所述请求标识判断所述释放用户是否与所述获取用户一致;若释放用户与所述获取用户一致,则根据释放用户发出的value值与所述分布式锁携带的value值是否相同,判断是否释放所述分布式锁;若释放用户与所述获取用户不一致,则返回拒绝释放所述分布式锁的提示。
在其中一个实施例中,所述若为获取分布式锁的请求,则根据请求中携带的value值与释放分布式锁的value值是否相同确定是否释放所述分布式锁,具体包括:若释放用户发出的value值与所述分布式锁携带的value值相同,则释放所述分布式锁,并返回释放分布式锁的业务代码;若释放用户发出的value值与所述分布式锁携带的value值不相同,则重复请求释放分布式锁,至超过释放超时时长后,停止请求操作,继续下一进程或返回释放失败的提示。
在其中一个实施例中,所述定义切面类,在所述切面类中依次添加声明注解、切面注解和命令注解,配合Spring框架中的事务性注解,并设置所述切面类和事务性注解的执行顺序,具体包括:设置所述切面类的执行顺序为1,所述事务性注解的执行顺序为2;在执行完所述切面类后,执行所述事务性注解。
在其中一个实施例中,所述在待加锁的方法中添加所述目标注解,具体包括:在多个用户访问所述待加锁的方法时,在所述待加锁的方法中添加所述目标注解,通过所述目标注解在所述待加锁的方法中自动加锁。
一种分布式锁的实现系统,包括:注解设置模块,用于设置目标注解,通过同步枚举定义分布式锁的属性信息;锁定义模块,用于在Redis操作类上定义获取分布式锁和释放分布式锁;切面类定义模块,用于定义切面类,在所述切面类中依次添加声明注解、切面注解和命令注解,配合Spring框架中的事务性注解,并设置所述切面类和事务性注解的执行顺序;注解添加模块,用于在待加锁的方法中添加所述目标注解。
一种设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述各个实施例中所述的一种分布式锁的实现方法的步骤。
一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述各个实施例中所述的一种分布式锁的实现方法的步骤。
相比于现有技术,本发明的优点及有益效果在于:通过设置目标注解,采用同步枚举定义分布式锁的属性信息,在Redis操作类上定义获取分布式锁和释放分布式锁,定义切面类,并在切面类中添加声明注解、切面注解和命令注解,与Spring框架的事务性注解混用,设置切面类和事务性注解的执行顺序,最后在待加锁的方法中添加目标注解,从而简化了加锁和释放锁的步骤,提高了工作效率,且便于后期维护。
附图说明
图1为一个实施例中一种分布式锁的实现方法的流程示意图;
图2为一个实施例中一种分布式锁的实现系统的结构示意图;
图3为一个实施例中设备的内部结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面通过具体实施方式结合附图对本发明做进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
在一个实施例中,如图1所示,提供了一种分布式锁的实现方法,包括以下步骤:
步骤S101,设置目标注解,通过同步枚举定义分布式锁的属性信息。
具体地,编写目标注解,注解上需要一个参数,可以定义为同步枚举的方式,从而便于控制分布式锁的数据量。通过同步枚举的方式定义分布式锁的属性信息。
其中,属性信息包括分布式锁的key字符串类型、轮询次数、轮询间隔时间、和超时时间。轮询次数设置为整数,避免没有获取到分布式锁的用户无限轮询;轮询时间间隔也设置为整数,即为每次轮询获取分布式锁的间隔时间,间隔时间可以设置的稍长,避免因为轮询过快导致Redis卡死;超时时间为获取分布式锁的总时长,避免不能获取分布式锁的用户一直轮询,导致死锁。
步骤S102,在Redis操作类上定义获取分布式锁和释放分布式锁。
具体地,在Redis操作类上分别添加定义获取分布式锁和释放分布式锁的方法。
步骤S103,定义切面类,在切面类中依次添加声明注解、切面注解和命令注解,配合Spring框架中的事务性注解,并设置切面类和事务性注解的执行顺序。
具体地,定义一个切面类SyncAop,这个类需要加上声明(Component)注解,因而Spring框架才会管理这个切面类;再加上一个切面(Aspect)注解,表明这是一个切面;然后添加命令(Order)注解,控制切面类的执行顺序。因为需要和Spring框架自带的事务性(Transactional)注解混用,因此需要对切面类和事务性注解的执行顺序进行设置。
步骤S104,在待加锁的方法中添加目标注解。
具体地,在待加锁的方法上添加目标注解,且可以和Spring框架中的事务性注解一起使用,由于已经设置好切面类和事务性注解的执行顺序,因此可以在多个用户访问该方法时,自动加锁,从而简化获取锁和释放锁的代码,便于后期维护。
在本实施例中,通过设置目标注解,采用同步枚举定义分布式锁的属性信息,在Redis操作类上定义获取分布式锁和释放分布式锁,定义切面类,并在切面类中添加声明注解、切面注解和命令注解,与Spring框架的事务性注解混用,设置切面类和事务性注解的执行顺序,最后在待加锁的方法中添加目标注解,从而简化了加锁和释放锁的步骤,提高了工作效率,且便于后期维护。
其中,步骤S102具体包括:定义获取分布式锁时,根据获取用户发出的请求识别请求标识,根据请求标识获取分布式锁,设置分布式锁的获取超时时长;若未超过获取超时时长,则通过UUID方法随机生成字符串,作为分布式锁的value值,并返回获取分布式锁的业务代码;若超过获取超时时长,则返回获取失败的提示。
具体地,在定义获取分布式锁时,根据获取用户发出的请求识别请求标识,根据请求标识获取分布式锁,设置分布式锁的获取超时时长;在获取分布式锁的时长超过获取超时时长时,返回获取失败的提示;在获取分布式锁的时长未超过获取超时时长时,则通过UUID(Universally Unique Identifier,通用唯一识别码)方法随机生成字符串,作为分布式锁的value值,并返回获取分布式锁的业务代码。采用UUID方法能够使得每个分布式锁都具有唯一的辨识码。
在一个实施例中,获取分布式锁的代码如下:
其中,步骤S102具体包括:定义释放分布式锁时,根据释放用户发出的释放请求识别请求标识,根据请求标识判断释放用户是否与获取用户一致;若释放用户与获取用户一致,则根据释放用户发出的value值与分布式锁携带的value值是否相同,判断是否释放所述分布式锁;若释放用户与获取用户不一致,则返回拒绝释放分布式锁的提示。
具体地,定义释放分布式锁时,根据请求标识确定释放用户是否与获取用户一致,若一致,则根据释放用户发出的value值与分布式锁携带的value值判断是否释放分布式锁;若不一致,则返回拒绝释放分布式锁的提示。
其中,若释放用户发出的value值与分布式锁携带的value值相同,则释放分布式锁,并返回释放分布式锁的业务代码;若释放用户发出的value值与分布式锁携带的value值不相同,则重复请求释放分布式锁,至超过释放超时时长后,停止请求释放分布式锁,继续下一进程或返回释放失败的提示。
在一个实施例中,释放分布式锁的代码如下:
其中,步骤S103具体包括:设置切面类的执行顺序为1,事务性注解的执行顺序为2;在执行完切面类后,执行事务性注解。
具体地,将切面类的执行顺序设置为1,事务性注解的执行顺序设置为2,执行完切面类后,再执行事务性注解,从而确保事务是在分布式锁里面执行的。其中,切面类的执行顺序依次为声明注解、切面注解和命令注解。
其中,步骤S104具体包括:在多个用户访问待加锁的方法时,在待加锁的方法中添加目标注解,通过目标注解在待加锁的方法中自动加锁。
具体地,在同时具有多个用户访问待加锁的方法时,可以在该方法中添加目标注解,通过目标注解在待加锁的方法中实现自动加锁,避免编写大量重复代码,提高工作效率。在执行完这个方法之后,释放锁,继续下一进程。
如图2所示,提供了一种分布式锁的实现系统20,包括:注解设置模块21、锁定义模块22、切面类定义模块23和注解添加模块24,其中:
注解设置模块21,用于设置目标注解,通过同步枚举定义分布式锁的属性信息;
锁定义模块22,用于在Redis操作类上定义获取分布式锁和释放分布式锁;
切面类定义模块23,用于定义切面类,在切面类中依次添加声明注解、切面注解和命令注解,配合Spring框架中的事务性注解,并设置切面类和事务性注解的执行顺序;
注解添加模块24,用于在待加锁的方法中添加目标注解。
在一个实施例中,锁定义模块22具体用于:在定义获取分布式锁时,根据获取用户发出的请求识别请求标识,根据请求标识获取分布式锁,设置分布式锁的获取超时时长;若未超过获取超时时长,则通过UUID方法随机生成字符串作为分布式锁的value值,并返回获取分布式锁的业务代码;若超过所述获取超时时长,则返回获取失败的提示。
在一个实施例中,锁定义模块22具体用于:在定义释放分布式锁时,根据释放用户发出的释放请求识别请求标识,根据请求标识判断所述释放用户是否与获取用户一致;若释放用户与获取用户一致,则根据释放用户发出的value值与分布式锁携带的value值是否相同,判断是否释放所述分布式锁;若释放用户与获取用户不一致,则返回拒绝释放分布式锁的提示。
在一个实施例中,切面类定义模块23具体用于:设置切面类的执行顺序为1,事务性注解的执行顺序为2;在执行完切面类后,执行事务性注解。
在一个实施例中,注解添加模块24具体用于:在多个用户访问待加锁的方法时,在待加锁的方法中添加目标注解,通过目标注解在待加锁的方法中自动加锁。
在一个实施例中,提供了一种设备,该设备可以是服务器,其内部结构图可以如图3所示。该设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该设备的处理器用于提供计算和控制能力。该设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该设备的数据库用于存储配置模板,还可用于存储目标网页数据。该设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种分布式锁的实现方法。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的设备的限定,具体的设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还可以提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时使所述计算机执行如前述实施例所述的方法,所述计算机可以为上述提到的一种分布式锁的实现系统的一部分。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
显然,本领域的技术人员应该明白,上述本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在计算机存储介质(ROM/RAM、磁碟、光盘)中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。所以,本发明不限制于任何特定的硬件和软件结合。
以上内容是结合具体的实施方式对本发明所做的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种分布式锁的实现方法,其特征在于,包括以下步骤:
设置目标注解,通过同步枚举定义分布式锁的属性信息;
在Redis操作类上定义获取分布式锁和释放分布式锁;
定义切面类,在所述切面类中依次添加声明注解、切面注解和命令注解,配合Spring框架中的事务性注解,并设置所述切面类和事务性注解的执行顺序;
在待加锁的方法中添加所述目标注解。
2.根据权利要求1所述的一种分布式锁的实现方法,其特征在于,所述设置目标注解,通过同步枚举定义分布式锁的属性信息,具体包括:
所述属性信息包括分布式锁的字符串类型、轮询次数、轮询间隔时间和超时时间。
3.根据权利要求1所述的一种分布式锁的实现方法,其特征在于,所述在Redis操作类上定义获取分布式锁和释放分布式锁,具体包括:
定义获取分布式锁时,根据获取用户发出的请求识别请求标识,根据所述请求标识获取分布式锁,设置分布式锁的获取超时时长;
若未超过所述获取超时时长,则通过UUID方法随机生成字符串作为所述分布式锁的value值,并返回获取分布式锁的业务代码;
若超过所述获取超时时长,则返回获取失败的提示。
4.根据权利要求3所述的一种分布式锁的实现方法,其特征在于,所述在Redis操作类上定义获取分布式锁和释放分布式锁,具体包括:
定义释放分布式锁时,根据释放用户发出的释放请求识别请求标识,根据所述请求标识判断所述释放用户是否与所述获取用户一致;
若释放用户与所述获取用户一致,则根据释放用户发出的value值与所述分布式锁携带的value值是否相同,判断是否释放所述分布式锁;
若释放用户与所述获取用户不一致,则返回拒绝释放所述分布式锁的提示。
5.根据权利要求4所述的一种分布式锁的实现方法,其特征在于,所述若为获取分布式锁的请求,则根据请求中携带的value值与释放分布式锁的value值是否相同确定是否释放所述分布式锁,具体包括:
若释放用户发出的value值与所述分布式锁携带的value值相同,则释放所述分布式锁,并返回释放分布式锁的业务代码;
若释放用户发出的value值与所述分布式锁携带的value值不相同,则重复请求释放分布式锁,至超过释放超时时长后,停止请求操作,继续下一进程或返回释放失败的提示。
6.根据权利要求1所述的一种分布式锁的实现方法,其特征在于,所述定义切面类,在所述切面类中依次添加声明注解、切面注解和命令注解,配合Spring框架中的事务性注解,并设置所述切面类和事务性注解的执行顺序,具体包括:
设置所述切面类的执行顺序为1,所述事务性注解的执行顺序为2;
在执行完所述切面类后,执行所述事务性注解。
7.根据权利要求1所述的一种分布式锁的实现方法,其特征在于,所述在待加锁的方法中添加所述目标注解,具体包括:
在多个用户访问所述待加锁的方法时,在所述待加锁的方法中添加所述目标注解,通过所述目标注解在所述待加锁的方法中自动加锁。
8.一种分布式锁的实现系统,其特征在于,包括:
注解设置模块,用于设置目标注解,通过同步枚举定义分布式锁的属性信息;
锁定义模块,用于在Redis操作类上定义获取分布式锁和释放分布式锁;
切面类定义模块,用于定义切面类,在所述切面类中依次添加声明注解、切面注解和命令注解,配合Spring框架中的事务性注解,并设置所述切面类和事务性注解的执行顺序;
注解添加模块,用于在待加锁的方法中添加所述目标注解。
9.一种设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110526501.3A CN113407553B (zh) | 2021-05-14 | 2021-05-14 | 一种分布式锁的实现方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110526501.3A CN113407553B (zh) | 2021-05-14 | 2021-05-14 | 一种分布式锁的实现方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113407553A true CN113407553A (zh) | 2021-09-17 |
CN113407553B CN113407553B (zh) | 2023-05-05 |
Family
ID=77678717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110526501.3A Active CN113407553B (zh) | 2021-05-14 | 2021-05-14 | 一种分布式锁的实现方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113407553B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103997498A (zh) * | 2014-05-27 | 2014-08-20 | 北京京东尚科信息技术有限公司 | 一种分布式锁服务的实现方法及组件 |
CN109656724A (zh) * | 2018-09-27 | 2019-04-19 | 深圳壹账通智能科技有限公司 | 业务处理方法、装置、设备及计算机可读存储介质 |
CN111131394A (zh) * | 2019-11-29 | 2020-05-08 | 紫光云(南京)数字技术有限公司 | 基于分布式锁的并发请求处理方法、装置及计算机可读存储介质 |
US10657064B1 (en) * | 2019-01-31 | 2020-05-19 | Salesforce.com. inc. | Extending usages of cached data objects beyond cache expiration periods |
CN111475516A (zh) * | 2020-03-05 | 2020-07-31 | 深圳壹账通智能科技有限公司 | 分布式锁的调用方法、装置、计算机设备及存储介质 |
CN111488143A (zh) * | 2020-04-15 | 2020-08-04 | 南京及物智能技术有限公司 | 一种基于Springboot2代码自动生成装置和方法 |
CN111552474A (zh) * | 2020-03-26 | 2020-08-18 | 平安医疗健康管理股份有限公司 | 执行分布式锁操作的处理方法及装置 |
CN112052263A (zh) * | 2020-07-13 | 2020-12-08 | 浙江大搜车软件技术有限公司 | 请求指令处理的方法、系统、计算机设备和可读存储介质 |
CN112799791A (zh) * | 2021-01-22 | 2021-05-14 | 平安普惠企业管理有限公司 | 分布式锁的调用方法、装置、电子设备和存储介质 |
-
2021
- 2021-05-14 CN CN202110526501.3A patent/CN113407553B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103997498A (zh) * | 2014-05-27 | 2014-08-20 | 北京京东尚科信息技术有限公司 | 一种分布式锁服务的实现方法及组件 |
CN109656724A (zh) * | 2018-09-27 | 2019-04-19 | 深圳壹账通智能科技有限公司 | 业务处理方法、装置、设备及计算机可读存储介质 |
US10657064B1 (en) * | 2019-01-31 | 2020-05-19 | Salesforce.com. inc. | Extending usages of cached data objects beyond cache expiration periods |
CN111131394A (zh) * | 2019-11-29 | 2020-05-08 | 紫光云(南京)数字技术有限公司 | 基于分布式锁的并发请求处理方法、装置及计算机可读存储介质 |
CN111475516A (zh) * | 2020-03-05 | 2020-07-31 | 深圳壹账通智能科技有限公司 | 分布式锁的调用方法、装置、计算机设备及存储介质 |
CN111552474A (zh) * | 2020-03-26 | 2020-08-18 | 平安医疗健康管理股份有限公司 | 执行分布式锁操作的处理方法及装置 |
CN111488143A (zh) * | 2020-04-15 | 2020-08-04 | 南京及物智能技术有限公司 | 一种基于Springboot2代码自动生成装置和方法 |
CN112052263A (zh) * | 2020-07-13 | 2020-12-08 | 浙江大搜车软件技术有限公司 | 请求指令处理的方法、系统、计算机设备和可读存储介质 |
CN112799791A (zh) * | 2021-01-22 | 2021-05-14 | 平安普惠企业管理有限公司 | 分布式锁的调用方法、装置、电子设备和存储介质 |
Non-Patent Citations (4)
Title |
---|
T LI等: "A storage solution for massive iot data based on nosql" * |
农夫YH: "Redis分布式锁,使aop+自定义注解实现", 《CSDN(HTTPS://BLOG.CSDN.NET/CHENMMO/ARTICLE/DETAILS/106891626)》 * |
孙朋: "基于SaaS模式的医药采购云平台设计与实现" * |
小小少年_: "redis分布式锁+事务+AOP一起使用注意点", 《CSDN(HTTPS://BLOG.CSDN.NET/CPLASF_/ARTICLE/DETAILS/108931549)》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113407553B (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112463144B (zh) | 分布式存储的命令行服务方法、系统、终端及存储介质 | |
WO2019179026A1 (zh) | 电子装置、集群访问域名自动生成方法及存储介质 | |
WO2019148728A1 (zh) | 电子装置、分布式系统执行任务分配方法及存储介质 | |
CN112039900B (zh) | 网络安全风险检测方法、系统、计算机设备和存储介质 | |
CN111342992B (zh) | 设备信息变更记录的处理方法及系统 | |
CN112783760B (zh) | 测试用例的处理方法、装置和存储介质 | |
CN112558946A (zh) | 一种生成代码的方法、装置、设备和计算机可读存储介质 | |
WO2019136812A1 (zh) | 电子装置、数据调用日志生成及查询方法及存储介质 | |
CN112818014B (zh) | 区块链数据解析方法、装置和电子设备 | |
WO2021169124A1 (zh) | 安装软件包至目标主机的方法、装置和计算机设备 | |
CN109409552A (zh) | 预约访问方法、系统、计算机设备及存储介质 | |
CN113590433B (zh) | 数据管理方法、数据管理系统和计算机可读存储介质 | |
US20130073729A1 (en) | User terminal, and method and apparatus for controlling the software management thereof | |
US9330276B2 (en) | Conditional role activation in a database | |
CN112699027A (zh) | 一种接口测试方法、装置、设备及可读存储介质 | |
CN110866007B (zh) | 大数据应用和表的信息管理方法、系统和计算机设备 | |
CN113407553B (zh) | 一种分布式锁的实现方法、系统、设备及存储介质 | |
CN107632893B (zh) | 消息队列处理方法及装置 | |
CN112583890B (zh) | 基于企业办公系统的消息推送方法、装置和计算机设备 | |
CN114970476A (zh) | 数据处理方法、系统、电子设备及存储介质 | |
US7660888B2 (en) | Indicating network resource availability methods, system and program product | |
CN114186966A (zh) | 公文审批方法、系统、装置及计算机可读存储介质 | |
CN111563250A (zh) | 权限管理方法、装置、计算机设备和存储介质 | |
CN110839085A (zh) | 指令管理方法、装置、电子设备及存储介质 | |
CN112115020B (zh) | 一种数据库连接池异常监测方法、装置及计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |