CN112015745B - 一种数据管理方法及装置 - Google Patents
一种数据管理方法及装置 Download PDFInfo
- Publication number
- CN112015745B CN112015745B CN202010837468.1A CN202010837468A CN112015745B CN 112015745 B CN112015745 B CN 112015745B CN 202010837468 A CN202010837468 A CN 202010837468A CN 112015745 B CN112015745 B CN 112015745B
- Authority
- CN
- China
- Prior art keywords
- value
- server
- redis
- instruction
- response
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000013523 data management Methods 0.000 title claims abstract description 29
- 230000004044 response Effects 0.000 claims description 96
- 238000012545 processing Methods 0.000 claims description 52
- 238000007726 management method Methods 0.000 abstract description 6
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000002147 killing effect Effects 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/2315—Optimistic concurrency control
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开关于一种数据管理方法及装置,涉及计算机技术及软件领域,用以解决相关技术中无法稳定支撑每秒查询率超过十万以上的高并发的库存数量管理的问题。该方法包括:接收多个请求消息,多个请求消息均用于请求获取虚拟资源;若当前的请求消息的数量大于或等于第一阈值,且小于或等于第一存储值与第二存储值之和,则向本地缓存申请第一存储值,更新第一存储值,其中,第一存储值为本地缓存的虚拟资源对应的存储值,第二存储值为远程字典服务Redis中存储的虚拟资源的存储值,第一存储值与第二存储值之和为虚拟资源的剩余数量;若当前的请求消息的数量小于第一阈值,或者大于第一存储值与第二存储值之和,则向Redis申请第二存储值,更新第二存储值。
Description
技术领域
本公开涉及计算机技术及软件领域,尤其涉及一种数据管理方法及装置。
背景技术
随着短视频、电商直播的兴起,秒杀卖货成为目前电商平台常见的营销手段,当大量的用户在同一时间对同一商品或者优惠券等进行抢购时,网络设备在短时间内对库存数量进行多次处理,会导致网络设备瞬间的并发处理量非常大,从而使得业务逻辑较简单的数据管理在技术层面上面临着高并发处理的考验。一般数据管理是应用数据库来实现的,而数据库的数据并发处理能力有限,在应对大量并发请求时,数据库无法支撑巨大的压力。
目前网络平台通常可以通过应用远程字典服务(Remote Dictionary Server,Redis)来管理数据,Redis可以满足每秒查询率(Queries per second,QPS)10万以下的数据并发需求。但是当网络设备的并发数量超过10万qps的时候,Redis并不能稳定支撑如此高的并发数据请求,可能会出现库存数据误判或者库存数据访问异常等问题。
发明内容
本公开提供一种库存数据管理方法及装置,以至少解决相关技术中无法稳定支撑每秒查询率超过十万以上的高并发库存数据管理的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种数据管理方法,应用于第一服务器,该方法包括:接收多个请求消息,多个请求消息均用于请求获取虚拟资源;若当前的请求消息的数量大于或等于第一阈值,且小于或等于第一存储值与第二存储值之和,则向本地缓存申请第一存储值,更新第一存储值,其中,第一存储值为本地缓存的虚拟资源对应的存储值,第二存储值为远程字典服务Redis中存储的虚拟资源的存储值,第一存储值与第二存储值之和为虚拟资源的剩余数量;若当前的请求消息的数量小于第一阈值,或者大于第一存储值与第二存储值之和,则向Redis申请第二存储值,更新第二存储值。
上述技术方案中,通过在库存处理高并发的情况下,在本地缓存预先向Redis申请一部分库存数量,从而提升库存并发处理的性能。当第一服务器检测到高并发的库存申请请求时,优先从本地缓存中扣减库存,避免了直接向Redis申请库存的操作;当第一服务器检测到当前库存申请请求不符合高并发处理条件时,可以转为向Redis申请库存的操作,从而一定程度上缓解了Redis处理库存的压力,提升用户体验。
在一种实施方式中,更新第一存储值之前,该方法还包括:若第一存储值小于请求消息中虚拟资源的请求数量,则向Redis发送第一指令,第一指令用于向Redis申请预设数值的虚拟资源数量。
上述可能的实现方式中,当确定本地缓存中的库存数量不足以满足当前的用户请求数量时,本地缓存可以通过向Redis申请预设数量的库存,从而支持响应于用户的请求从本地缓存区扣减库存,以缓解Redis处理库存的压力,提升库存并发处理的性能。
在一种实施方式中,该方法还包括:接收来自Redis的第一响应,第一响应用于指示申请成功;根据第一响应将第一存储值增加预设数值。
上述可能的实现方式中,通过在库存处理高并发的情况下,在本地缓存预先向Redis申请一部分库存数量,从而缓解了Redis处理库存的压力,提升库存并发处理的性能。
在一种实施方式中,若当前的请求消息的数量小于第一阈值,或者大于第一存储值与第二存储值之和,则该方法还包括:向Redis发送第二指令,第二指令用于请求返还本地缓存中的虚拟资源的剩余数量,第二指令包括第一存储值。
在一种实施方式中,该方法还包括:接收来自Redis的第二响应,第二响应用于指示返还成功;根据第二响应将第一存储值更新为零。
上述可能的实现方式中,当检测到当前Redis中的剩余库存数量低于预设阈值时,即是确定当前不需要支持高并发的库存申请,可以将本地缓存中的库存数量返还给Redis,从而使得当前的Redis库存数量是当前的真实库存,后续响应终端设备的用户请求直接扣减Redis的库存数量,从而不会造成申请不到库存而发生无库存误判的情况。
在一种实施方式中,向Redis申请第二存储值并且更新第二存储值,具体包括:向Redis发送第三指令,第三指令用于请求扣减虚拟资源对应的剩余数量,第三指令包括虚拟资源的请求数量;接收来自Redis的第三响应,第三响应用于指示是否扣减成功。
根据本公开实施例的第二方面,提供一种数据管理方法,应用于配置有远程字典服务Redis的第二服务器,该方法包括:在第一服务器接收到的请求消息的数量大于或等于第一阈值,且小于或等于第一存储值与第二存储值之和,并且,所述第一存储值小于所述请求消息中虚拟资源的请求数量的情况下,接收来自第一服务器的第一指令,所述第一指令用于所述第一服务器向所述Redis申请预设数值的所述虚拟资源数量,其中,所述第一存储值为所述第一服务器中本地缓存的所述虚拟资源的存储值,所述第二存储值为所述Redis中存储的所述虚拟资源的存储值,所述第一存储值与所述第二存储值之和为所述虚拟资源的剩余数量;根据所述第一指令将所述第二存储值扣减所述预设数值;向所述第一服务器发送第一响应,所述第一响应用于指示所述第一服务器向所述Redis申请预设数值的虚拟资源申请成功。
在一种实施方式中,在所述第一服务器接收到的请求消息的数量小于所述第一阈值,或者大于所述第一存储值与所述第二存储值之和的情况下,该方法还包括:接收来自第一服务器的第二指令,第二指令用于请求返还第一服务器本地缓存中的虚拟资源的剩余数量,第二指令包括第一存储值。
在一种实施方式中,该方法还包括:将第二存储值累加第一存储值;向第一服务器发送第二响应,第二响应用于指示所述第一服务器本地缓存中的所述虚拟资源的剩余数量返还成功。
在一种实施方式中,在所述第一服务器接收到的请求消息的数量小于所述第一阈值,或者大于所述第一存储值与所述第二存储值之和的情况下,该方法还包括:接收来自第一服务器的第三指令,第三指令用于请求扣减Redis中虚拟资源对应的剩余数量,第三指令包括虚拟资源的请求数量;将第二存储值扣减请求数量;向第一服务器发送第三响应,第三响应用于指示所述Redis中虚拟资源对应的所述第二存储值是否扣减成功。
根据本公开实施例的第三方面,提供一种数据管理装置,该装置包括:接收模块,被配置为执行接收多个请求消息,多个请求消息均用于请求获取虚拟资源;处理模块,被配置为执行,若当前的请求消息的数量大于或等于第一阈值,且小于或等于第一存储值与第二存储值之和,则向本地缓存申请第一存储值,更新第一存储值,其中,第一存储值为本地缓存的虚拟资源对应的存储值,第二存储值为远程字典服务Redis中存储的虚拟资源的存储值,第一存储值与第二存储值之和为虚拟资源的剩余数量;若当前的请求消息的数量小于第一阈值,或者大于第一存储值与第二存储值之和,则向Redis申请第二存储值,更新第二存储值。
在一种实施方式中,该装置还包括:发送模块,被配置为执行,若第一存储值小于请求消息中虚拟资源的请求数量,则向Redis发送第一指令,第一指令用于向Redis申请预设数值的虚拟资源数量。
在一种实施方式中,接收模块,还被配置为执行:接收来自Redis的第一响应,第一响应用于指示申请成功;处理模块,还被配置为执行根据第一响应将第一存储值增加预设数值。
在一种实施方式中,若当前的请求消息的数量小于第一阈值,或者大于第一存储值与第二存储值之和,则发送模块,还被配置为执行:向Redis发送第二指令,第二指令用于请求返还本地缓存中的虚拟资源的剩余数量,第二指令包括第一存储值。
在一种实施方式中,接收模块,还被配置为执行:接收来自Redis的第二响应,第二响应用于指示返还成功;处理模块,还被配置为执行根据第二响应将第一存储值更新为零。
在一种实施方式中,发送模块,还被配置为执行:向Redis发送第三指令,第三指令用于请求扣减虚拟资源对应的剩余数量,第三指令包括虚拟资源的请求数量;接收模块,还被配置为执行,接收来自Redis的第三响应,第三响应用于指示是否扣减成功。
根据本公开实施例的第四方面,提供一种数据管理装置,该装置包括:接收模块,被配置为在第一服务器接收到的请求消息的数量大于或等于第一阈值,且小于或等于第一存储值与第二存储值之和,并且,所述第一存储值小于所述请求消息中虚拟资源的请求数量的情况下,执行接收来自第一服务器的第一指令,第一指令用于第一服务器向远程字典服务Redis申请预设数值的虚拟资源数量,其中,所述第一存储值为所述第一服务器中本地缓存的所述虚拟资源的存储值,所述第二存储值为所述Redis中存储的所述虚拟资源的存储值,所述第一存储值与所述第二存储值之和为所述虚拟资源的剩余数量;处理模块,被配置为执行将第二存储值扣减预设数值;发送模块,被配置为执行向第一服务器发送第一响应,第一响应用于指示第一服务器向所述Redis申请预设数值的虚拟资源申请成功。
在一种实施方式中,接收模块,还被配置为执行:在所述第一服务器接收到的请求消息的数量小于所述第一阈值,或者大于所述第一存储值与所述第二存储值之和的情况下,接收来自第一服务器的第二指令,第二指令用于请求返还第一服务器本地缓存中的虚拟资源的剩余数量,第二指令包括第一存储值。
在一种实施方式中,处理模块,还被配置为执行:将第二存储值累加第一存储值;发送模块,还被配置为执行向第一服务器发送第二响应,第二响应用于指示第一服务器本地缓存中的所述虚拟资源的剩余数量返还成功。
在一种实施方式中,接收模块,还被配置为执行:在所述第一服务器接收到的请求消息的数量小于所述第一阈值,或者大于所述第一存储值与所述第二存储值之和的情况下,接收来自第一服务器的第三指令,第三指令用于请求扣减Redis中虚拟资源对应的剩余数量,第三指令包括虚拟资源的请求数量;处理模块,还被配置为执行将第二存储值扣减请求数量;发送模块,还被配置为执行向第一服务器发送第三响应,第三响应用于指示Redis中虚拟资源对应的第二存储值是否扣减成功。
根据本公开实施例的第五方面,提供一种电子设备,该电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如上述第一方面中任一项所述的方法。
根据本公开实施例的第六方面,提供一种电子设备,该电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如上述第二方面中任一项所述的方法。
根据本公开实施例的第七方面,提供一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如上述第一方面中任一项所述的方法。
根据本公开实施例的第八方面,提供一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如上述第二方面中任一项所述的方法。
根据本公开实施例的第九方面,提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如上述第一方面中任一项所述的方法。
根据本公开实施例的第十方面,提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如上述第二方面中任一项所述的方法。
本公开的实施例提供的技术方案至少带来以下有益效果:通过在库存处理高并发的情况下,在本地缓存预先向Redis申请一部分库存数量,从而提升库存并发处理的性能。当第一服务器检测到高并发的库存申请请求时,优先从本地缓存中扣减库存,避免了直接向Redis申请库存的操作;当第一服务器检测到当前库存申请请求不符合高并发处理条件时,可以转为向Redis申请库存的操作,从而一定程度上缓解了Redis处理库存的压力,提升用户体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种数据管理系统的示意图。
图2是根据一示例性实施例示出的一种数据管理方法的流程图。
图3是根据一示例性实施例示出的数据管理方法的流程图。
图4是根据一示例性实施例示出的数据管理方法的流程图。
图5是根据一示例性实施例示出的一种数据管理装置的框图。
图6是根据一示例性实施例示出的一种装置的框图(服务器的一般结构)。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
首先,对本公开实施例的实施环境进行介绍。
图1是本公开实施例提供的一种数据管理系统的示意图,该系统包括服务器100、至少一个终端设备101和服务器102。
其中,服务器100和服务器102可以为一台服务器、多台服务器集群、云计算平台和虚拟化中心中的至少一种。服务器100可以是为多个终端设备101提供网络资源的服务端,下文中称之为第一服务器,例如,服务器100可以为电商平台或者直播平台的服务器。具体的,至少一个终端设备101可以通过服务器100观看视频直播或者浏览、购买商品。为支持商品购买或者购物券下发等服务,服务器100可以访问部署有支持库存管理数据库的服务器102。其中,服务器102上可以应用Redis来管理库存数据,以支撑高并发下的库存数据管理服务,下文中称之为第二服务器。
其中,Redis是一个开源的、基于内存的数据结构存储器,可遵守伯克利软件套件(Berkeley Software Distribution,BSD)协议,是一个高性能的Key(关键字)-Value(值)数据库,可以提供多种语言的应用程序接口(Application Programming Interface,API)。Redis通常被称为数据结构服务器,因为其值(Value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。
终端设备101可以是手机、音乐播放器(如MP3)、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、车载设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备等,本公开实施例对该终端设备的具体形态不作特殊限制。
其中,终端设备101可以通过有线或者无线方式与服务器100进行通信。终端设备101上可以安装有网络应用,如电商平台或者直播平台。服务器100可以通过网络应用为终端设备101提供视频直播或者抢购商品等服务。
接下来,结合图1所示的实施环境,对本公开实施例涉及的应用场景进行简单介绍。
目前电商平台或者视频直播平台通常都会通过秒杀卖货作为营销手段,从而会造成大量的用户在同一时间对同一虚拟资源进行抢购的现象。例如,某主播有千万名粉丝用户,在优惠活动期间,有几十万用户通过视频直播平台在线观看其卖货直播,如果主播发出十万张优惠券或者限量商品,则会同时有至少十几万用户进行秒杀抢购,此时每秒的库存管理的并发处理数量可能达到10万以上。
本申请实施例提供一种高并发下的数据管理方法,可以支持上述的应用场景。如图2是根据一示例性实施例示出的一种数据管理方法的流程图,应用于第一服务器、第二服务器和至少一个终端设备,其中,第二服务器配置有远程字典服务Redis。该方法可以包括以下步骤。
在步骤S21中,第一服务器接收多个请求消息,多个请求消息均用于请求获取虚拟资源。
其中,第一服务器接收来自多个用户终端的请求消息,该请求信息具体可以为针对某一个虚拟资源的库存申请请求,用于申请扣减某一虚拟商品或者虚拟购物券等的库存数量。
具体的,该用户请求可以包括所述虚拟资源的请求数量,即所包括的扣减所述虚拟资源的库存数量。请求数量可以预设为1,也可以为预设的其他值或者由终端设备的所属用户根据需求进行设置。通常,在秒杀抢购或者限购活动中,每一个用户的库存申请的请求数量一般为1。
在具体的实施例中,在同一时间内通常有多个终端设备向第一服务器发送库存申请请求。
在步骤S22中,若当前请求消息的数量大于或等于第一阈值,且小于或等于第一存储值与第二存储值之和,则第一服务器向本地缓存申请第一存储值,并更新第一存储值。
在步骤S23中,若当前请求消息的数量小于第一阈值,或者大于第一存储值与第二存储值之和,则向第二服务器的Redis申请第二存储值,并更新第二存储值。
其中,第一存储值为第一服务器本地缓存中该虚拟资源对应的存储值,第二存储值为远程字典服务Redis中存储的该虚拟资源的存储值,第一存储值与第二存储值之和为当前该虚拟资源的剩余总库存数量。第一阈值为第一服务器上预先配置的高并发请求数量的门限值,例如,可以配置第一阈值为10万或者15万。具体可以根据服务器处理并发库存申请的能力等进行配置,本申请对此不做具体限定。
第一服务器可以根据当前的用户请求数量和当前的虚拟资源的剩余总库存数量,确定响应该用户请求是否访问第一服务器本地缓存的库存并扣减库存,还是请求扣减Redis的库存。
其中,当前的用户请求数量表示当前库存的并发请求量,是指当前时刻第一服务器累计的用户请求的数量,可以通过第一服务器中的统计模块获取。具体的,第一服务器上的统计模块可以获取单位时间内上报的用户请求数量进行统计。也可以通过所述第一服务器在一定的时间周期内的平均并发量进行判断。
第二服务器中Redis的剩余库存数量即第二存储值具体是指当前时刻的Redis的剩余库存数量。
具体的,第一服务器可以通过查询缓存获取第二服务器中Redis的剩余库存数量。也就是说,在处理上述的高并发库存管理任务时,例如限量秒杀或者购物券秒杀等活动时,第一服务器可以预设为每秒或者一定时间周期进行查询,获取第二服务器中Redis的剩余库存数量,并将获取的Redis剩余库存数量缓存在查询缓存中。如此,可以减少第一服务器对第二服务器上的Redis库存的频繁访问,从而造成Redis的处理压力。
从而,第一服务器可以根据当前获取的用户请求数量和当前第服务器本地缓存中和Redis中的该虚拟资源的剩余总库存数量,也就是第一存储值和第二存储值的和,确定用户请求是否用于访问第一服务器的本地缓存。
在一种实施方式中,第一服务器上的本地缓存中的库存是预先从第二服务器中Redis申请的部分库存,也就是说本地缓存的第一存储值是预先从Redis申请的部分库存。下面的实施例将详细介绍第一服务器从第二服务器上的Redis申请预设数量的虚拟资源的请求过程,此处不再赘述。
在上述的步骤S22中,若第服务器确定访问本地缓存的剩余库存即第一存储值,则第一服务器扣减第一存储值,也就是扣减本地缓存的该虚拟资源剩余库存数量。
在上述的步骤S23中,若确定不访问本地缓存而是向Redis请求扣减库存,则第一服务器向第二服务器申请扣减Redis的第二存储值,也就是扣减Redis上存储的该虚拟资源的剩余库存数量。
若第一服务器确定访问本地缓存,则响应于所述终端设备的用户库存申请请求,则从本地缓存中扣减该用户库存申请请求对应的库存数量。
若第一服务器确定不访问本地缓存,则响应于所述终端设备的用户库存申请请求,则第一服务器向第二服务器申请从Redis中扣减该用户库存申请请求对应的库存数量。
上述本申请的实施例中,当第一服务器检测到高并发的库存申请请求时,优先从本地缓存中扣减库存,避免了直接向Redis申请库存的操作;当第一服务器检测到当前库存申请请求不符合高并发处理条件时,可以转为向Redis申请库存的操作,从而一定程度上缓解了Redis处理库存的压力,提升用户体验。
需要说明的是,上述实施例中,第一服务器可以根据当前的用户请求数量大于或者等于预设的第一阈值,且当前的用户请求数量大于或者等于当前Redis的剩余库存数量与第一服务器本地缓存的剩余库存数量之和来确定访问第一服务器本地缓存去扣减库存,其中的判断条件也可以为当前的用户请求数量大于第一阈值且当前的用户请求数量大于当前Redis的剩余库存数量与第一服务器本地缓存的剩余库存数量之和来确定访问第一服务器本地缓存去扣减库存。则相应的,当第一服务器确定当前的用户请求数量小于或者等于第一阈值,或者当前的用户请求数量小于或者等于当前Redis的剩余库存数量与第一服务器本地缓存的剩余库存数量之和,则确定不需要访问第一服务器本地缓存去扣减库存,而直接从Redis扣减库存。临界值的选取和判断可以由技术人员根据库存管理的设计需要进行设置,本申请对此不作具体限定。
结合图2,图3是根据一示例性实施例示出的一种数据管理方法的流程图。
S301:第一服务器接收多个请求消息。
其中,多个请求消息可以是来自于多个终端设备的库存请求消息,每一个库存请求消息可以包括对应的虚拟资源的请求数量。
S302:第一服务器根据当前请求消息的数量和剩余总库存数量确定是否访问本地缓存的第一存储值。
其中,剩余总库存数量即为第一存储值与第二存储值之和。第一存储值为第一服务器的本地缓存中存储的该虚拟资源对应的当前剩余库存数量。第二存储值为第二服务器上Redis中存储的该虚拟资源对应的当前剩余库存数量。
第一服务器确定当前请求消息的数量大于或等于第一阈值,且小于或等于第一存储值与第二存储值之和,则访问本地缓存的第一存储值。
S303:向本地缓存申请第一存储值,确定第一存储值是否满足请求消息对应的请求数量。
S304:若第一存储值大于或者等于请求消息中虚拟资源的请求数量,则更新第一存储值。
S305:若第一存储值小于请求消息中虚拟资源的请求数量,则第一服务器向第二服务器上的Redis发送第一指令。
第一指令用于向第二服务器上的Redis申请预设数值的虚拟资源数量。
也就是说,当第一服务器确定访问本地缓存时,如第一服务器确定本地缓存中的剩余库存数量小于终端设备的用户请求的数量,即第一服务器确定本地缓存的当前剩余库存数量不足以满足所述终端设备的用户请求的库存数量时,第一服务器需要从第二服务器中Redis申请预设数量的库存到第一服务器的本地缓存中,以响应当前的多个终端设备的库存申请请求。
示例性的,当终端设备的用户请求的库存数量为1,第一服务器确定本地缓存的当前剩余库存数量为0时,第一服务器向Redis申请100个库存存储在第一服务器的本地缓存中,从而当前的终端设备的库存申请请求都可以从本地缓存的库存数量中扣减,而不再需要频繁访问Redis。
S306:第二服务器接收第一指令,将Redis的第二存储值扣减预设数值。
S307:第二服务器向第一服务器发送第一响应。
第一响应用于指示库存申请成功,也就是第二存储值成功扣减预设数值。
S308:第一服务器根据第一响应将第一存储值增加预设数值。
第一服务器确定库存申请成功,则将第一存储值增加预设数值,以响应用户的库存申请请求,扣减本地缓存中的剩余库存即第一存储值。
S309:第一服务器根据请求消息中虚拟资源的请求数量扣减第一存储值。
第一服务器扣减本地缓存中的剩余库存,即将第一存储值扣减所述用户请求中包括的该虚拟资源的请求数量。示例性的,将第一存储值减1。
S310:第一服务器向终端设备发送库存申请成功的响应消息。
上述本申请的实施例中,为了提升并发处理的性能,可以通过在本地缓存预先向Redis申请一部分库存数量。当第一服务器检测到高并发的库存申请请求时,优先从本地缓存中扣减库存,避免了直接向Redis申请库存的操作;当第一服务器检测到当前库存申请请求不符合高并发处理条件时,可以转为向Redis申请库存的操作,从而一定程度上缓解了Redis处理库存的压力,提升用户体验。
需要说明的是,在上述的实施方式中,第二服务器也可以配置为不向第一服务器发送第一响应消息,即第一服务器和第二服务器预先协商为库存申请成功,不发送响应消息,如库存申请失败,则第二服务器向第一服务器发送库存申请失败的响应消息。是否发送成功处理的响应消息,可以由技术人员根据库存管理的需要进行预先协商或者配置,本申请对此不做具体限定,下述的实施例中的响应消息(如第二响应或第三响应)与此处类似,后续对此将不再赘述。
在一种可能的实施方式中,当第一服务器确定当前的用户请求数量小于第一阈值,或者当前的用户请求数量大于当前的剩余总库存数量(即第一存储值与第二存储值之和)时,第一服务器将本地缓存中的剩余库存(即第一存储值)退回Redis库存(即第二存储值),以使得响应于终端设备的用户请求向第二服务器请求扣减Redis的剩余库存数量(即第二存储值)。
其中,当第一服务器将本地缓存中的剩余库存数量返还给Redis,也就是说第一服务器的本地缓存中的剩余库存数量清零,Redis的当前库存数量增加,更新为第一服务器的本地缓存返还剩余库存之前,Redis的剩余库存加上所述本地缓存中的剩余库存数量。
图4是根据一示例性实施例示出的一种数据管理方法的流程图,该方法还包括:
S401:若第一服务器确定当前的用户请求数量小于第一阈值,或者当前的用户请求数量大于当前的剩余总库存数量,则第一服务器向第二服务器上的Redis发送第二指令。
其中,第二指令用于请求返还第一服务器本地缓存中的该虚拟资源的剩余库存数量,第二指令可以包括第一存储值。
S402:第二服务器接收第二指令,将Redis上的第二存储值累加第一存储值。
第二服务器接收到来自第一服务器的返还库存的请求,更新第二存储值,即将第一存储值累加到第二存储值上。
S403:第二服务器向第一服务器发送第二响应,第二响应用于指示库存返还成功。
S404:第一服务器接收第二响应,根据第二响应将第一存储值更新为零。
示例性的,当确定当前的用户请求消息数量小于剩余的总库存数量时,如当前的用户请求消息数量为1000,而当前第一服务器确定本地缓存的当前剩余库存数量为100,第二服务器的Redis的剩余库存为1000,则第一服务器的本地缓存向第二服务器的Redis返还库存,从而当前的本地缓存库存数量清零,第二服务器的Redis的库存数量为1000+100=1100。后续响应于终端设备的库存申请请求,可以直接从第二服务器的Redis进行库存数量的扣减。
基于上述实施方式第一服务器返还剩余库存后,第二服务器上Redis的第二存储值即为当前的剩余总库存数量。因此,后续响应于用户的库存请求信息,第一服务器可以直接向第二服务器申请扣减库存,即更新第二存储值。因此,所述方法还可以包括:
S405:第一服务器接收用户的请求消息。
S406:第一服务器向第二服务器的Redis发送第三指令。
其中,第三指令用于请求扣减该虚拟资源对应的剩余数量,即扣减第二存储值。第三指令可以包括该虚拟资源的请求数量,示例性的,可以为1。
S407:第二服务器接收第三指令,将第二存储值扣减请求数量。
根据第三指令,第二服务器扣减剩余库存。示例性的,可以将第二存储值减1。
S408:第二服务器向第一服务器发送第三响应,用于指示是否扣减成功。
S409:第一服务器向终端设备发送库存申请成功的响应消息。
其中,当第一服务器确定当前的用户请求数量小于第一阈值,也就是当前的并发数量小于预设阈值时,第一服务器将本地缓存中的剩余库存数量返还给Redis,也就是说第一服务器的本地缓存中的剩余库存数量清零,Redis的当前库存数量增加,更新为第一服务器的本地缓存返还剩余库存之前,Redis的剩余库存加上所述本地缓存中的剩余库存数量。
上述本申请的实施例中,当检测到当前库存处理的并发数量低于预设阈值时,即是确定当前不需要支持高并发的库存申请,可以将本地缓存中的库存数量返还给Redis,从而使得当前的Redis库存数量即是当前的真实库存,后续响应终端设备的用户请求直接扣减Redis的库存数量,从而不会造成申请不到库存而发生无库存误判的情况。
另外,当第一服务器检测到当前的库存并发请求达到高并发的条件,即当前请求数量超过第一阈值,且当前请求数量小于或者等于剩余的总库存数量时,第一服务器可以再次向Redis申请预设数量的库存,存储在本地缓存,从而响应于用户的请求扣减本地缓存的库存数量。即执行上述图3描述的实施情况,从而缓解Redis的并发访问压力。
需要说明的是,上述的Redis库存数量增加和扣减处理,可以通过Redis Incr或者Redis Decr命令来实现。其中,Incr是Redis中一个递增函数,Decr是Redis中一个递减函数,Redis Incr命令可以用于将关键字(key)中储存的数值(value)增一,Redis Decr命令可以用于将key中储存的value减一。本领域技术人员可以根据上述处理流程设计出详细的库存数量处理函数,本申请对此不做具体限定。
图5是根据一示例性实施例示出的一种数据管理装置的框图,用于实现上述实施例中第一服务器执行的步骤。参照图5,该装置包括接收模块501和处理模块502。
其中,接收模块501被配置为执行接收多个请求消息,多个请求消息均用于请求获取虚拟资源。
处理模块502被配置为执行,若当前的请求消息的数量大于或等于第一阈值,且小于或等于第一存储值与第二存储值之和,则向本地缓存申请第一存储值,更新第一存储值,其中,第一存储值为本地缓存的虚拟资源对应的存储值,第二存储值为远程字典服务Redis中存储的虚拟资源的存储值,第一存储值与第二存储值之和为虚拟资源的剩余数量;若当前的请求消息的数量小于第一阈值,或者大于第一存储值与第二存储值之和,则向Redis申请第二存储值,更新第二存储值。
在一种实施方式中,该装置还包括发送模块503,被配置为执行,若第一存储值小于请求消息中虚拟资源的请求数量,则向Redis发送第一指令,第一指令用于向Redis申请预设数值的虚拟资源数量。
在一种实施方式中,接收模块501还被配置为执行:接收来自Redis的第一响应,第一响应用于指示申请成功;处理模块,还被配置为执行根据第一响应将第一存储值增加预设数值。
在一种实施方式中,若当前的请求消息的数量小于第一阈值,或者大于第一存储值与第二存储值之和,则发送模块503还被配置为执行:向Redis发送第二指令,第二指令用于请求返还本地缓存中的虚拟资源的剩余数量,第二指令包括第一存储值。
在一种实施方式中,接收模块501还被配置为执行:接收来自Redis的第二响应,第二响应用于指示返还成功;处理模块,还被配置为执行根据第二响应将第一存储值更新为零。
在一种实施方式中,发送模块503还被配置为执行:向Redis发送第三指令,第三指令用于请求扣减虚拟资源对应的剩余数量,第三指令包括虚拟资源的请求数量。接收模块501还被配置为执行,接收来自Redis的第三响应,第三响应用于指示是否扣减成功。
另外,本申请还提供一种数据管理装置,用于执行上述实施例中第二服务器实现的步骤。如图5所示,该装置包括接收模块501、处理模块502和发送模块503。
其中,接收模块501被配置为执行接收来自第一服务器的第一指令,第一指令用于第一服务器向远程字典服务Redis申请预设数量的虚拟资源。
处理模块502被配置为执行将第二存储值扣减预设数值,其中,第一存储值为第一服务器本地缓存的虚拟资源对应的存储值,第二存储值为Redis中存储的虚拟资源的存储值,第一存储值与第二存储值之和为虚拟资源的剩余数量。
发送模块503被配置为执行向第一服务器发送第一响应,第一响应用于指示申请成功。
在一种实施方式中,接收模块501还被配置为执行:接收来自第一服务器的第二指令,第二指令用于请求返还第一服务器本地缓存中的虚拟资源的剩余数量,第二指令包括第一存储值。
在一种实施方式中,处理模块502还被配置为执行:将第二存储值累加第一存储值。发送模块503还被配置为执行向第一服务器发送第二响应,第二响应用于指示返还成功。
在一种实施方式中,接收模块501还被配置为执行:接收来自第一服务器的第三指令,第三指令用于请求扣减Redis中虚拟资源对应的剩余数量,第三指令包括虚拟资源的请求数量。处理模块502还被配置为执行将第二存储值扣减请求数量。发送模块603还被配置为执行向第一服务器发送第三响应,第三响应用于指示是否扣减成功。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种装置600的结构示意图,该装置600可以应用于根据上述实施方式,以执行上述实施方式中第一服务器执行的步骤,或者执行上述实施方式中第二服务器执行的步骤。如图6所示,该装置600可以包括至少一个处理器601,通信线路602以及存储器603。
处理器601可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本公开方案程序执行的集成电路。
通信线路602可包括一通路,在上述组件之间传送信息,例如总线。
存储器603可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路602与处理器相连接。存储器也可以和处理器集成在一起。本公开实施例提供的存储器通常可以具有非易失性。其中,存储器603用于存储执行本公开方案所涉及的计算机执行指令,并由处理器601来控制执行。处理器601用于执行存储器603中存储的计算机执行指令,从而实现本公开实施例提供的方法。
可选的,本公开实施例中的计算机执行指令也可以称之为应用程序代码,本公开实施例对此不作具体限定。
在具体实现中,作为一种实施例,处理器601可以包括一个或多个CPU,例如图6中的CPU0和CPU1。
在具体实现中,作为一种实施例,装置600可以包括多个处理器,例如图6中的处理器601和处理器607。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,装置600还可以包括通信接口604。通信接口604,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网接口,无线接入网接口(radio access network,RAN),无线局域网接口(wireless local area networks,WLAN)等。
在具体实现中,作为一种实施例,装置600还可以包括输出设备605和输入设备606。输出设备605和处理器601通信,可以以多种方式来显示信息。例如,输出设备605可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备606和处理器601通信,可以以多种方式接收用户的输入。例如,输入设备606可以是鼠标、键盘、触摸屏设备或传感设备等。
在具体实现中,装置600可以是台式机、便携式电脑、网络服务器、掌上电脑(personal digital assistant,PDA)、移动手机、平板电脑、无线终端设备、嵌入式设备或有图6中类似结构的设备。本公开实施例不限定装置600的类型。
在一些实施例中,图6中的处理器601可以通过调用存储器603中存储的计算机执行指令,使得装置600执行上述方法实施例中的方法。
示例性的,图5中的处理模块502的功能/实现过程可以通过图6中的处理器601调用存储器603中存储的计算机执行指令来实现。
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器603,上述指令可由装置600的处理器601执行以完成上述方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (24)
1.一种数据管理方法,应用于第一服务器,其特征在于,所述方法包括:
接收多个请求消息,所述多个请求消息均用于请求获取虚拟资源;
若当前的所述请求消息的数量大于或等于第一阈值,且小于或等于第一存储值与第二存储值之和,则向本地缓存申请所述第一存储值,更新所述第一存储值,其中,所述第一存储值为本地缓存的所述虚拟资源对应的存储值,所述第二存储值为远程字典服务Redis中存储的所述虚拟资源的存储值,所述第一存储值与所述第二存储值之和为所述虚拟资源的剩余数量;
若当前的所述请求消息的数量小于所述第一阈值,或者大于所述第一存储值与所述第二存储值之和,则向所述Redis申请所述第二存储值,更新所述第二存储值。
2.根据权利要求1所述的方法,其特征在于,所述更新所述第一存储值之前,所述方法还包括:
若所述第一存储值小于所述请求消息中所述虚拟资源的请求数量,则向所述Redis发送第一指令,所述第一指令用于向所述Redis申请预设数值的所述虚拟资源数量。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收来自所述Redis的第一响应,所述第一响应用于指示申请成功;
根据所述第一响应将所述第一存储值增加所述预设数值。
4.根据权利要求1或2所述的方法,其特征在于,若当前的所述请求消息的数量小于所述第一阈值,或者大于所述第一存储值与所述第二存储值之和,则所述方法还包括:
向所述Redis发送第二指令,所述第二指令用于请求返还所述本地缓存中的所述虚拟资源的剩余数量,所述第二指令包括所述第一存储值。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
接收来自所述Redis的第二响应,所述第二响应用于指示返还成功;
根据所述第二响应将所述第一存储值更新为零。
6.根据权利要求1或2所述的方法,其特征在于,向所述Redis申请所述第二存储值并且更新所述第二存储值,具体包括:
向所述Redis发送第三指令,所述第三指令用于请求扣减所述虚拟资源对应的剩余数量,所述第三指令包括所述虚拟资源的请求数量;
接收来自所述Redis的第三响应,所述第三响应用于指示是否扣减成功。
7.一种数据管理方法,应用于配置有远程字典服务Redis的第二服务器,其特征在于,所述方法包括:
在第一服务器接收到的请求消息的数量大于或等于第一阈值,且小于或等于第一存储值与第二存储值之和,并且,所述第一存储值小于所述请求消息中虚拟资源的请求数量的情况下,接收来自第一服务器的第一指令,所述第一指令用于所述第一服务器向所述Redis申请预设数值的所述虚拟资源数量,其中,所述第一存储值为所述第一服务器中本地缓存的所述虚拟资源的存储值,所述第二存储值为所述Redis中存储的所述虚拟资源的存储值,所述第一存储值与所述第二存储值之和为所述虚拟资源的剩余数量;
根据所述第一指令将所述第二存储值扣减所述预设数值;
向所述第一服务器发送第一响应,所述第一响应用于指示所述第一服务器向所述Redis申请预设数值的虚拟资源申请成功。
8.根据权利要求7所述的方法,其特征在于,在所述第一服务器接收到的请求消息的数量小于所述第一阈值,或者大于所述第一存储值与所述第二存储值之和的情况下,所述方法还包括:
接收来自所述第一服务器的第二指令,所述第二指令用于请求返还所述第一服务器本地缓存中的所述虚拟资源的剩余数量,所述第二指令包括所述第一存储值。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
将所述第二存储值累加所述第一存储值;
向所述第一服务器发送第二响应,所述第二响应用于指示所述第一服务器本地缓存中的所述虚拟资源的剩余数量返还成功。
10.根据权利要求7或8所述的方法,其特征在于,在所述第一服务器接收到的请求消息的数量小于所述第一阈值,或者大于所述第一存储值与所述第二存储值之和的情况下,所述方法还包括:
接收来自所述第一服务器的第三指令,所述第三指令用于请求扣减所述Redis中虚拟资源对应的剩余数量,所述第三指令包括所述虚拟资源的请求数量;
将所述第二存储值扣减所述请求数量;
向所述第一服务器发送第三响应,所述第三响应用于指示所述Redis中虚拟资源对应的所述第二存储值是否扣减成功。
11.一种数据管理装置,其特征在于,所述装置包括:
接收模块,被配置为执行接收多个请求消息,所述多个请求消息均用于请求获取虚拟资源;
处理模块,被配置为执行,若当前的所述请求消息的数量大于或等于第一阈值,且小于或等于第一存储值与第二存储值之和,则向本地缓存申请所述第一存储值,更新所述第一存储值,其中,所述第一存储值为本地缓存的所述虚拟资源对应的存储值,所述第二存储值为远程字典服务Redis中存储的所述虚拟资源的存储值,所述第一存储值与所述第二存储值之和为所述虚拟资源的剩余数量;
若当前的所述请求消息的数量小于所述第一阈值,或者大于所述第一存储值与所述第二存储值之和,则向所述Redis申请所述第二存储值,更新所述第二存储值。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
发送模块,被配置为执行,若所述第一存储值小于所述请求消息中所述虚拟资源的请求数量,则向所述Redis发送第一指令,所述第一指令用于向所述Redis申请预设数值的所述虚拟资源数量。
13.根据权利要求12所述的装置,其特征在于,所述接收模块,还被配置为执行:
接收来自所述Redis的第一响应,所述第一响应用于指示申请成功;
所述处理模块,还被配置为执行根据所述第一响应将所述第一存储值增加所述预设数值。
14.根据权利要求11或12所述的装置,其特征在于,若当前的所述请求消息的数量小于所述第一阈值,或者大于所述第一存储值与所述第二存储值之和,则发送模块,还被配置为执行:
向所述Redis发送第二指令,所述第二指令用于请求返还所述本地缓存中的所述虚拟资源的剩余数量,所述第二指令包括所述第一存储值。
15.根据权利要求14所述的装置,其特征在于,所述接收模块,还被配置为执行:
接收来自所述Redis的第二响应,所述第二响应用于指示返还成功;
所述处理模块,还被配置为执行根据所述第二响应将所述第一存储值更新为零。
16.根据权利要求11或12所述的装置,其特征在于,发送模块还被配置为执行:
向所述Redis发送第三指令,所述第三指令用于请求扣减所述虚拟资源对应的剩余数量,所述第三指令包括所述虚拟资源的请求数量;
所述接收模块,还被配置为执行,接收来自所述Redis的第三响应,所述第三响应用于指示是否扣减成功。
17.一种数据管理装置,其特征在于,所述装置包括:
接收模块,被配置为在第一服务器接收到的请求消息的数量大于或等于第一阈值,且小于或等于第一存储值与第二存储值之和,并且,所述第一存储值小于所述请求消息中虚拟资源的请求数量的情况下,执行接收来自第一服务器的第一指令,所述第一指令用于所述第一服务器向远程字典服务Redis申请预设数值的所述虚拟资源数量,其中,所述第一存储值为所述第一服务器中本地缓存的所述虚拟资源的存储值,所述第二存储值为所述Redis中存储的所述虚拟资源的存储值,所述第一存储值与所述第二存储值之和为所述虚拟资源的剩余数量;
处理模块,被配置为执行将所述第二存储值扣减预设数值;
发送模块,被配置为执行向所述第一服务器发送第一响应,所述第一响应用于指示所述第一服务器向所述Redis申请预设数值的虚拟资源申请成功。
18.根据权利要求17所述的装置,其特征在于,所述接收模块,还被配置为执行:在所述第一服务器接收到的请求消息的数量小于所述第一阈值,或者大于所述第一存储值与所述第二存储值之和的情况下,接收来自所述第一服务器的第二指令,所述第二指令用于请求返还所述第一服务器本地缓存中的所述虚拟资源的剩余数量,所述第二指令包括所述第一存储值。
19.根据权利要求18所述的装置,其特征在于,所述处理模块,还被配置为执行:
将所述第二存储值累加所述第一存储值;
所述发送模块,还被配置为执行向所述第一服务器发送第二响应,所述第二响应用于指示所述第一服务器本地缓存中的所述虚拟资源的剩余数量返还成功。
20.根据权利要求17或18所述的装置,其特征在于,所述接收模块,还被配置为执行:
在所述第一服务器接收到的请求消息的数量小于所述第一阈值,或者大于所述第一存储值与所述第二存储值之和的情况下,接收来自所述第一服务器的第三指令,所述第三指令用于请求扣减所述Redis中虚拟资源对应的剩余数量,所述第三指令包括所述虚拟资源的请求数量;
所述处理模块,还被配置为执行将所述第二存储值扣减所述请求数量;
所述发送模块,还被配置为执行向所述第一服务器发送第三响应,所述第三响应用于指示所述Redis中虚拟资源对应的所述第二存储值是否扣减成功。
21.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的方法。
22.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求7至10中任一项所述的方法。
23.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至6中任一项所述的方法。
24.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求7至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010837468.1A CN112015745B (zh) | 2020-08-19 | 2020-08-19 | 一种数据管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010837468.1A CN112015745B (zh) | 2020-08-19 | 2020-08-19 | 一种数据管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112015745A CN112015745A (zh) | 2020-12-01 |
CN112015745B true CN112015745B (zh) | 2024-05-17 |
Family
ID=73505069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010837468.1A Active CN112015745B (zh) | 2020-08-19 | 2020-08-19 | 一种数据管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112015745B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544153A (zh) * | 2012-07-10 | 2014-01-29 | 阿里巴巴集团控股有限公司 | 一种基于数据库的数据更新方法和系统 |
CN108416643A (zh) * | 2018-01-10 | 2018-08-17 | 链家网(北京)科技有限公司 | 一种抢单方法及系统 |
CN109150929A (zh) * | 2017-06-15 | 2019-01-04 | 北京京东尚科信息技术有限公司 | 高并发场景下的数据请求处理方法和装置 |
CN109191233A (zh) * | 2018-07-31 | 2019-01-11 | 上海哔哩哔哩科技有限公司 | 一种秒杀下单请求处理方法、装置和存储介质 |
CN109544072A (zh) * | 2018-11-21 | 2019-03-29 | 北京京东尚科信息技术有限公司 | 热点库存本地化扣减方法、系统、设备以及介质 |
CN109582738A (zh) * | 2018-12-03 | 2019-04-05 | 广东鸭梨科技集团股份有限公司 | 一种处理高并发秒杀活动的方法 |
CN109949135A (zh) * | 2019-03-20 | 2019-06-28 | 江苏满运软件科技有限公司 | 高并发交易请求处理方法、系统、设备及存储介质 |
CN110196769A (zh) * | 2018-04-19 | 2019-09-03 | 财付通支付科技有限公司 | 一种信息处理方法、装置、服务器及存储介质 |
CN110909978A (zh) * | 2019-10-15 | 2020-03-24 | 京东数字科技控股有限公司 | 资源处理方法、装置、服务器及计算机可读存储介质 |
CN111324622A (zh) * | 2020-02-20 | 2020-06-23 | 中国建设银行股份有限公司 | 一种资源抢购的处理方法、装置、设备及存储介质 |
-
2020
- 2020-08-19 CN CN202010837468.1A patent/CN112015745B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544153A (zh) * | 2012-07-10 | 2014-01-29 | 阿里巴巴集团控股有限公司 | 一种基于数据库的数据更新方法和系统 |
CN109150929A (zh) * | 2017-06-15 | 2019-01-04 | 北京京东尚科信息技术有限公司 | 高并发场景下的数据请求处理方法和装置 |
CN108416643A (zh) * | 2018-01-10 | 2018-08-17 | 链家网(北京)科技有限公司 | 一种抢单方法及系统 |
CN110196769A (zh) * | 2018-04-19 | 2019-09-03 | 财付通支付科技有限公司 | 一种信息处理方法、装置、服务器及存储介质 |
CN109191233A (zh) * | 2018-07-31 | 2019-01-11 | 上海哔哩哔哩科技有限公司 | 一种秒杀下单请求处理方法、装置和存储介质 |
CN109544072A (zh) * | 2018-11-21 | 2019-03-29 | 北京京东尚科信息技术有限公司 | 热点库存本地化扣减方法、系统、设备以及介质 |
CN109582738A (zh) * | 2018-12-03 | 2019-04-05 | 广东鸭梨科技集团股份有限公司 | 一种处理高并发秒杀活动的方法 |
CN109949135A (zh) * | 2019-03-20 | 2019-06-28 | 江苏满运软件科技有限公司 | 高并发交易请求处理方法、系统、设备及存储介质 |
CN110909978A (zh) * | 2019-10-15 | 2020-03-24 | 京东数字科技控股有限公司 | 资源处理方法、装置、服务器及计算机可读存储介质 |
CN111324622A (zh) * | 2020-02-20 | 2020-06-23 | 中国建设银行股份有限公司 | 一种资源抢购的处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112015745A (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11146502B2 (en) | Method and apparatus for allocating resource | |
US10884839B2 (en) | Processing system for performing predictive error resolution and dynamic system configuration control | |
US10838798B2 (en) | Processing system for performing predictive error resolution and dynamic system configuration control | |
CN109150929B (zh) | 高并发场景下的数据请求处理方法和装置 | |
CN111930786B (zh) | 资源获取请求处理系统、方法及装置 | |
CN111881329A (zh) | 一种账户余额管理方法和系统 | |
CN112884181A (zh) | 额度信息处理方法和装置 | |
CN115545639B (zh) | 金融业务处理方法、装置、电子设备及存储介质 | |
US20230283655A1 (en) | Data download method and apparatus, electronic device, and readable storage medium | |
CN112015745B (zh) | 一种数据管理方法及装置 | |
CN114070847A (zh) | 服务器的限流方法、装置、设备及存储介质 | |
CN113765964A (zh) | 一种分布式系统服务分发的方法和装置 | |
CN114138397B (zh) | 页面显示方法、装置、电子设备及存储介质 | |
CN115496544A (zh) | 一种数据处理的方法和装置 | |
CN113420050B (zh) | 数据查询管理方法、装置、计算机设备及可读存储介质 | |
CN110895777A (zh) | 一种处理超时服务单的方法和装置 | |
CN115455097A (zh) | 风控数据处理方法、系统、计算机设备及存储介质 | |
CN112632074A (zh) | 用于数据库的库存分配方法、装置、电子设备和介质 | |
CN113568706A (zh) | 针对业务的容器调整方法、装置、电子设备和存储介质 | |
CN111125112A (zh) | 数据处理方法及装置、电子设备和计算机可读存储介质 | |
CN114285743B (zh) | 更新配置信息的方法、装置、电子设备及存储介质 | |
CN115484149B (zh) | 网络切换方法、网络切换装置、电子设备及存储介质 | |
CN118195740A (zh) | 请求处理方法、装置、设备及存储介质 | |
CN113778660A (zh) | 一种管理热点数据的系统和方法 | |
CN117057815A (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 |