CN113609134B - 一种获取唯一随机码的方法及装置 - Google Patents
一种获取唯一随机码的方法及装置 Download PDFInfo
- Publication number
- CN113609134B CN113609134B CN202110969024.8A CN202110969024A CN113609134B CN 113609134 B CN113609134 B CN 113609134B CN 202110969024 A CN202110969024 A CN 202110969024A CN 113609134 B CN113609134 B CN 113609134B
- Authority
- CN
- China
- Prior art keywords
- random code
- interval
- target
- data structure
- redis server
- 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 56
- 238000012795 verification Methods 0.000 claims abstract description 36
- 230000008569 process Effects 0.000 claims description 26
- 101150036301 spop gene Proteins 0.000 claims description 6
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 5
- 238000012797 qualification Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 238000003860 storage 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开一种获取唯一随机码的方法及装置,本申请通过响应用户请求获取随机码的请求信息,判断请求信息是否符合校验条件,若符合,则按照各随机码区间对应的选取概率,从预设的redis服务器中选取一目标随机码区间,其中,redis服务器中存储有各随机码区间对应的随机码,在目标随机码区间中随机获取一目标随机码,并将目标随机码从redis服务器的目标随机码区间中消除。本申请实施例提供的方法,可以在服务器中通过预设的选取概率获取随机码区间,通过控制选取概率实现不同随机码区间出现的频率,再在该随机码区间中随机获取一随机码,并且在获取后将该随机码从目标随机码区间中消除,确保了每个随机码都不会二次出现,提高了随机码的获取效率。
Description
技术领域
本申请涉及数据生产领域,尤其是一种获取唯一随机码的方法及装置。
背景技术
随着生活水平的提高,为了丰富人们的娱乐生活,出现了一些带有抽奖码的抽奖活动,通过这种活动可以对中奖者予以一定的奖励,来刺激人们消费,为了保持抽奖活动的公平性,一般采用随机码的方式分配给每位参与者抽奖号。
现有的产生随机码的方式主要是通过生成一个指定范围内的随机码,然后索引这个随机码在记录已生成随机码的数据库中是否是唯一的,若不唯一则重新生成。然而当数据库的饱和度越高时,越容易与生成的随机码重复,唯一性越差,导致这种方式获取随机码不够高效,如何提高随机码的获取效率是人们关注的问题。
发明内容
有鉴于此,本申请提供了一种获取唯一随机码的方法及装置,用于提高随机码的获取效率。
为了实现上述目的,现提出的方案如下:
一种获取唯一随机码的方法,包括:
响应用户请求获取随机码的请求信息;
判断所述请求信息是否符合校验条件;
若符合,则按照各随机码区间对应的选取概率,从预设的redis服务器中选取一个目标随机码区间,其中,所述redis服务器中存储有各随机码区间对应的随机码;
在所述目标随机码区间中随机获取一个目标随机码,并将所述目标随机码从所述redis服务器的目标随机码区间中消除。
可选地,所述预设的redis服务器包括hash数据结构和set数据结构,其中:
所述set数据结构预先存储有各随机码区间对应的随机码;
所述hash数据结构预先储存有与所述随机码区间对应的区间key、区间库存及选取概率。
可选地,在所述按照各随机码区间对应的选取概率,从预设的redis服务器中选取一个目标随机码区间之前,还包括:
获取所述各随机码区间对应的选取概率及区间库存;
判断是否存在区间库存为0的随机码区间;
若存在,则重新规划各随机码区间的选取概率,得到各随机码区间的新的选取概率,并更新所述hash数据结构。
可选地,所述按照各随机码区间对应的选取概率,从预设的redis服务器中选取一个目标随机码区间,包括:
根据所述hash数据结构中存储的各随机码区间对应的选取概率,选择一目标区间key;
选取与所述目标区间key对应的目标随机码区间。
可选地,所述在所述目标随机码区间中随机获取一个目标随机码,并将所述目标随机码从所述redis服务器的目标随机码区间中消除,包括:
在set数据结构存储的目标随机码区间中随机获取一个目标随机码,并且将所述目标随机码在所述redis服务器的set数据结构中消除;
将hash数据结构中与所述目标随机码区间对应的区间库存减一。
可选地,还包括:
若判断所述请求信息不符合校验条件,则终止获取随机码过程并向用户发送报警信息。
可选地,所述redis服务器的预设过程,包括:
将由随机码组成的随机码区间写入set数据结构;
将随机码区间对应的选取概率写入hash数据结构;
将随机码区间对应的区间key写入hash数据结构;
将随机码区间对应的区间库存写入hash数据结构。
可选地,所述在所述目标随机码区间中随机获取一个目标随机码,并将所述目标随机码从所述redis服务器的目标随机码区间中消除,包括:
利用随机返回删除的元素操作spop,在redis服务器中获取所述目标随机码区间中的一个目标随机码,并从redis服务器的目标随机码区间中消除所述目标随机码。
一种获取唯一随机码的装置,包括:
响应单元,用于响应用户请求获取随机码的请求信息;
校验单元,用于判断所述请求信息是否符合校验条件;
随机码区间选取单元,用于确定所述校验单元判断所述请求信息符合校验条件时,从预设的redis服务器中选取一个目标随机码区间,其中,所述redis服务器中存储有各随机码区间对应的随机码;
随机码获取单元,用于在所述目标随机码区间中随机获取一个目标随机码,并将所述目标随机码从所述redis服务器的目标随机码区间中消除。
可选地,还包括:
警报单元,用于确定所述请求信息不符合校验条件时,则终止获取随机码过程并向用户发送报警信息。
从上述的技术方案可以看出,本申请实施例提供的获取唯一随机码的方法,通过响应用户请求获取随机码的请求信息,判断请求信息是否符合校验条件,若符合,则按照各随机码区间对应的选取概率,从预设的redis服务器中选取一目标随机码区间,其中,redis服务器中存储有各随机码区间对应的随机码,在目标随机码区间中随机获取一目标随机码,并将目标随机码从redis服务器的目标随机码区间中消除。本申请实施例提供的方法,可以在服务器中通过预设的选取概率获取随机码区间,通过控制选取概率实现不同随机码区间出现的频率,再在该随机码区间中随机获取一随机码,并且在获取后将该随机码从redis服务器中消除,确保了每个随机码都不会二次出现,提高了随机码的获取效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1a为本申请实施例提供的实现获取唯一随机码的一种系统架构图;
图1b为本申请实施例提供的redis服务器的系统架构图;
图2为本申请实施例提供的获取唯一随机码的方法流程图;
图3为本申请实施例提供的一种实施例的场景流程图;
图4为本申请实施例提供的一种redis服务器预设过程流程图;
图5为本申请实施例提供的一种初始化redis服务器的流程图;
图6为本申请实施例提供的一种随机码区间操作界面示意图;
图7为本申请实施例提供的另一种随机码区间操作界面示意图;
图8为本申请实施例提供的一种获取唯一随机码的装置的结构示意图;
图9为本申请实施例公开的一种获取唯一随机码的硬件结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了使本申请的技术方案更加清楚明白,图1a示出了本申请实施例提供的实现获取唯一随机码的一种系统架构图,如图1a所示,该系统架构可以包括:用户客户端10和服务器20。其中,服务端20可以是设置于网络侧的服务设备,服务器20与用户客户端10通过网络进行数据交互,服务器20可以是单台服务器实现,也可以是多台服务器组成的服务器集群实现。在本申请实施例中,服务器20能够获取用户客户端10发送的获取随机码请求信息,并基于该信息得到具有唯一性的随机码,并返还给用户客户端10。
用户客户端可以是电视、手机、电脑等终端设备。用户客户端10能够支持对随机码的展示,以供用户浏览随机码的操作。
图1b示例了一种redis类型的服务器的内部架构,如图1b所示:
redis服务器的存储器中,包括hash数据结构和set数据结构,其中:
1、所述set数据结构预先存储有各随机码区间对应的随机码。
具体的,各随机码区间由随机码组成并存储在set数据结构中,随机码区间中的随机码数量可以为0。
2、所述hash数据结构预先储存有与所述随机码区间对应的区间key、区间库存及选取概率。
具体的,区间key是随机码区间在hash数据结构中对应的名称,区间库存是在hash数据结构中对应随机码区间中的随机码的数量,选取概率是在hash数据结构中选取对应随机码区间的概率。
本申请实施例可以通过服务器20收到用户端10发送的请求信息,并且服务端20支持对请求信息进一步的操作,得到并返还给用户端10一个随机码。
在此基础上,服务器20并非是随机生成一个随机码并通过对比数据库的记录来判断随机码是否具有唯一性,而是在存储器中通过选取概率选取目标随机码区间,再在目标随机码区间中获取并消除一个目标随机码,确保了每个随机码都不会二次出现,提高了随机码的获取效率。
接下来,以服务器20的角度,对本申请的获取唯一随机码的方法进行介绍,如图2所示,图2示出了本申请实施例提供的获取唯一随机码的方法流程图,该流程可以包括:
步骤S100、响应用户请求获取随机码的请求信息。
具体的,当用户需要获取随机码时,可以响应用户发送的请求获取随机码的请求信息,请求信息可以包括用户的身份信息及相关的权限信息。
例如可以响应用户发送的手机短信。
步骤S110、判断所述请求信息是否符合校验条件。
具体的,为了提高获取唯一随机码方案的安全性能,可以对请求信息中的用户的身份信息及相关的权限信息进行校验,校验方式可以包括登录态检验、资格校验、程序密钥apiKey方式校验和程序签名apiSign方式校验中的一种或几种,通过校验后可执行步骤S120。
步骤S120、从预设的redis服务器中选取一个目标随机码区间。
具体的,redis服务器中存储有各随机码区间对应的随机码,并且,本申请可以预先设定各随机码区间对应的选取概率,通过选取概率库选择目标随机码区间。在此基础上,本步骤中可以按照各随机码区间对应的选取概率,从预设的redis服务器中选取一个目标随机码区间。
具体的,各随机码区间对应的选取概率,可以根据随机码区间中,随机码的分布情况预先设定,可以在redis服务器中,根据预先设定的选取概率获取一个目标随机码区间,本步骤可以通过控制选取概率的不同来实现随机码区间的出现频率。
步骤S130、在所述目标随机码区间中随机获取一个目标随机码,并将所述目标随机码从所述redis服务器的目标随机码区间中消除。
具体的,本步骤在获取目标随机码的同时,在redis服务器中的随机码区间对目标随机码进行消除,目标随机码在获取后,redis服务器中不再包含该目标随机码。本步骤确保了后续需要再次获取随机码时,不会二次出现已经获取过的随机码,保持了随机码的唯一性。
从上述技术方案可以看出,本申请实施例提供的一种获取唯一随机码的方法可以在服务器中通过预设的选取概率获取随机码区间,通过控制选取概率实现不同随机码区间出现的频率,再在该随机码区间中随机获取一个随机码,并且在获取该随机码后,从redis服务器中的随机码区间中消除该随机码,确保了每个随机码都不会二次出现,提高了随机码的获取效率。
在本申请的一些实施例中,本申请考虑到可能会选取到随机码为空的随机码区间,为了防止选中空的随机码区间从而无法获取随机码,本实施例在确定请求信息的身份信息及相关的权限信息符合校验条件的情况下,重新更新hash数据结构,该更新hash数据结构的过程在步骤S120之前,可以包括:
步骤S1、获取所述各随机码区间对应的选取概率及区间库存。
具体的,从hash数据结构中,获取各随机码区间对应的选取概率及区间库存。
步骤S2、判断是否存在区间库存为0的随机码区间。
具体的,判断从hash数据结构中,获取的各随机码区间对应的区间库存中,是否存在区间库存为0的随机码区间,区间库存为0的随机码区间中不再包含任意一个随机码。
步骤S3、若存在区间库存为0的随机码区间,则重新规划各随机码区间的选取概率,得到各随机码区间的新的选取概率,并更新所述hash数据结构。
具体的,在确定存在区间库存为0的随机码区间后,为了防止选取到区间库存为0的随机码区间,本步骤重新规划了各随机码区间的选取概率得到新的选取概率并更新到hash数据结构中。
本步骤中示例了一种可选的重新分配选取概率的方式,示例如将区间库存为0的随机码区间对应的原有选取概率设为0,并将该随机码区间原有的选取概率分配给其他区间库存不为0的随机码区间。具体地,可以是按照其它区间库存不为0的随机码区间的区间库存的比例,对所述原有的选取概率进行分配。重新分配后得到各个随机码区间的新的选取概率,并将新的选取概率更新到hash数据结构中。
上述实施例可以保证整个随机码获取过程的公平性,确保在总的选取概率不变的情况下,使得整个随机码获取方案都可以随机获取到一个随机码。
在本申请的一些实施例中,对上述步骤S120中,按照各随机码区间对应的选取概率,从预设的redis服务器中选取一个目标随机码区间的过程进行介绍,该过程可以包括:
步骤S121、根据所述hash数据结构中存储的各随机码区间对应的选取概率,选择一目标区间key。
具体的,可以在hash数据结构中根据各随机码区间对应的选取概率选取与目标随机码区间对应的目标区间key。
步骤S122、选取与所述目标区间key对应的目标随机码区间。
具体的,因为区间key与目标随机码区间具有对应关系,可以利用存储在hash数据结构中的目标区间key选取目标随机码区间。
例如表1所示,表1例举了三个随机码区间及对应的区间key和选取概率:
表1
区间key | A | B | C |
随机码区间 | [1,2,3] | [4,5,6] | [7,8,9] |
选取概率 | 20% | 30% | 50% |
其中,随机码区间[1,2,3]对应的区间key是A,且在hash数据结构有20%的选取概率选中A,通过hash数据结构中的区间key A来选取set数据结构中的随机码区间[1,2,3]。
上述实施例可以利用hash数据结构中的选取概率来选取对应的随机码区间,由于选取概率可以预选设定,通过控制选取概率可以实现不同随机码区间出现的频率。
在本申请的一些实施例中,对上述步骤S130、在所述目标随机码区间中随机获取一个目标随机码,并将所述目标随机码从所述redis服务器的目标随机码区间中消除的过程进行介绍,该过程可以包括:
步骤S131、在set数据结构存储的目标随机码区间中随机获取一个目标随机码,并且将所述目标随机码在所述redis服务器的set数据结构中消除。
具体的,目标随机码是在已确定的目标随机码区间中随机获取的一个随机码,本申请实施例可以在获取目标随机码的同时在set数据结构中消除该目标随机码,也可以在获取目标随机码后,在set数据结构中消除该目标随机码。
步骤S132、将hash数据结构中与所述目标随机码区间对应的区间库存减一。
具体的,消除目标随机码使得目标随机码区间的随机码个数减少了一个,对应的区间库存需同步更新随机码区间的库存数据,则目标随机码区间对应的区间库存减一。
本申请实施例在获取目标随机码并将其在redis服务器的set数据结构中消除,使得下次获取的随机码不会重复出现,确保了随机码的唯一性。
可选的,上述步骤S130的过程可以是利用redis服务器所支持的随机返回删除的元素操作spop实现,具体的,可以是利用随机返回删除的元素操作spop,在redis服务器中获取所述目标随机码区间中的一个目标随机码,并从redis服务器的目标随机码区间中消除所述目标随机码。
为了方便理解本申请方案,本申请实施例提供了一种通过redis服务器获取随机码的流程图。如图3所示,在redis服务器内部可以包括处理器模块和存储器模块,下面以处理器模块的视角进行描述,当处理器模块收到外部请求时,处理过程包括:
步骤S210、合法校验。
具体的,处理器对该外部请求的身份信息及相关的权限信息进行合法校验。
步骤S220、从hash数据结构中取出选取概率和区间库存。
具体的,外部请求通过校验后处理器从redis服务器的hash结构取出预先存储的选取概率和区间库存。
步骤S230、根据选取概率和区间库存计算得到新的选取概率。
具体的,如果存在区间库存为0的随机码区间,则处理器模块将区间库存为0的选取概率,根据其他随机码区间的随机码数量按比例分配得到新的选取概率,并更新redis服务器的hash数据结构。
步骤S240、根据选取概率选取目标区间key。
具体的,处理器模块重新从redis服务器的hash数据结构中获取选取概率,根据新的选取概率获取一个目标区间key。
步骤S250、利用目标区间key选取目标随机码区间。
具体的,处理器模块利用目标区间key从redis服务器的set数据结构中选取目标随机码区间。
步骤S260、返回目标随机码。
具体的,处理器模块在set数据结构中使用随机返回删除的元素操作spop随机弹出一个目标随机码,并返还目标随机码。
相比于现有技术,本方案是通过处理器模块在存储器模块中操作完成的,具有高效的特性,且每个随机码都有机会被获取利用,利用率可达100%。
在本申请的一些实施例中,在判断所述请求信息是否符合校验条件时,还有一种所述请求信息不合格校验条件的情况,对此本方案还可以包括:
确定判断所述请求信息不符合校验条件时,则终止获取随机码过程并向用户发送报警信息。
具体的,如果请求信息中校验不通过,则停止后续获取随机码的操作并向用户发送报警信息,发送的报警信息可以是提醒输入的用户信息有误或用户不具备获取随机码的资格,报警信息可以包括蜂鸣器报警,灯光报警及向用户发送提示信息等。
本申请实施例通过判断所述请求信息,若不符合校验条件则终止获取随机码过程可以节约资源及损耗,避免实施不必要的操作流程,通过报警信息可以提醒用户检查并重新输入请求信息。
下面将介绍本申请实施例的redis服务器的预设过程,预设过程可以是由redis服务器的配置端对redis服务器进行配置,图4为一种redis服务器预设过程流程图,如图4所示,包括:
步骤S310、将由随机码组成的随机码区间写入set数据结构。
具体的,通过配置端将由随机码组成的随机码区间写入redis服务器的set数据结构。
步骤S320、将随机码区间对应的选取概率写入hash数据结构。
具体的,通过配置端将该随机码区间的选取概率写入redis服务器的hash数据结构。
步骤S330、将随机码区间对应的区间key写入hash数据结构。
具体的,通过配置端将该随机码区间的区间key写入redis服务器的hash数据结构。
步骤S340、将随机码区间对应的区间库存写入hash数据结构。
具体的,通过配置端将该随机码区间的区间库存写入redis服务器的hash数据结构。
本申请实施例中,对选取概率、区间key、区间库存的写入顺序可以不做限制,通过本实施例可以满足用户对随机码的获取规则的设定需求,有效控制随机码区间的选取概率,提高了用户对设置随机码的可操作性。
例如本申请实施例提供的一种初始化redis服务器的流程图,redis服务器的配置端可以是admin后台,如图5所示,通过admin后台初始化redis服务器。下面是以admin后台的处理器的视角来描述初始化过程。当admin后台的处理器收到初始化请求后,初始化过程包括:
步骤S410、将随机码区间写入redis服务器。
具体的,将由随机码组成的随机码区间写入redis服务器的set数据结构。
步骤S420、将选取概率写入redis服务器。
具体的,将随机码区间的选取概率写入redis服务器的hash数据结构。
步骤S440、将区间key写入redis服务器。
具体的,将随机码区间的区间key写入redis服务器的hash数据结构。
步骤S440、将随机码区间的区间库存写入redis服务器。
具体的,将随机码区间的区间key写入redis服务器的hash数据结构。
其中,对于写入hash数据结构的数据可以不做写入先后的顺序要求。通过初始化操作可以还原随机码在最初始写入redis服务器中时的随机码数量。
进一步的,为了方便用户使用本方案,本申请实施例可以提供一种可选的随机码区间操作界面,如图6所示,通过列表页界面可以实现对随机码区间的操作和记录,同时还可以通过名称检索目标随机码区间,通过编辑选项可以进入对选取的随机码区间的进一步细化操作,如图7所示,通过新增&编辑界面可以实现对随机码区间的删除、新增、初始化数据等功能,所述初始化功能可以是将已消除的随机码全部重新编辑进对应的随机码区间。
下面对本申请实施例提供的获取唯一随机码的装置进行描述,下文描述的获取唯一随机码的装置与上文描述的获取唯一随机码的方法可相互对应参照。
如图8所示,其公开了一种获取唯一随机码的装置的结构示意图,该获取唯一随机码的装置可以包括:
响应单元11,用于响应用户请求获取随机码的请求信息;
校验单元12,用于判断所述请求信息是否符合校验条件;
随机码区间选取单元13,用于确定所述校验单元12判断所述请求信息符合校验条件时,从预设的redis服务器中选取一个目标随机码区间,其中,所述redis服务器中存储有各随机码区间对应的随机码;
随机码获取单元14,用于在所述目标随机码区间中随机获取一个目标随机码,并将所述目标随机码从所述redis服务器的目标随机码区间中消除。
可选的,本申请的获取唯一随机码的装置,还包括:
警报单元,用于确定所述请求信息不符合校验条件时,则终止获取随机码过程并向用户发送报警信息。
可选的,本申请的获取唯一随机码的装置,还包括:
数据获取子单元,用于获取所述各随机码区间对应的选取概率及区间库存;
库存查询子单元,用于判断是否存在区间库存为0的随机码区间;
概率规划子单元,用于存在区间库存为0的随机码区间,则重新规划各随机码区间的选取概率,得到各随机码区间的新的选取概率,并更新所述hash数据结构。
可选的,所述随机码区间选取单元13可以包括:
区间key选取子单元,用于根据所述hash数据结构中存储的各随机码区间对应的选取概率,选择一目标区间key;
目标区间选取子单元,用于选取与所述目标区间key对应的目标随机码区间。
可选的,随机码获取单元14具体可以利用随机返回删除的元素操作spop,在redis服务器中获取所述目标随机码区间中的一个目标随机码,并从redis服务器的目标随机码区间中消除所述目标随机码。
可选的,所述随机码获取单元14可以包括:
目标随机码获取子单元,用于在set数据结构存储的目标随机码区间中随机获取一个目标随机码,并且将所述目标随机码在所述redis服务器的set数据结构中消除;
数据更新子单元,用于将hash数据结构中与所述目标随机码区间对应的区间库存减一。
可选的,本申请方案的装置还包括初始化单元,用于对redis服务器初始化,过程包括:
将由随机码组成的随机码区间写入set数据结构;
将随机码区间对应的选取概率写入hash数据结构;
将随机码区间对应的区间key写入hash数据结构;
将随机码区间对应的区间库存写入hash数据结构。
本申请实施例提供的获取唯一随机码的装置可应用于获取唯一随机码设备。获取唯一随机码设备可以是服务端20。图9示出了获取唯一随机码的硬件结构框图,参照图9,获取唯一随机码的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;
在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:
响应用户请求获取随机码的请求信息;
判断所述请求信息是否符合校验条件;
若符合,则按照各随机码区间对应的选取概率,从预设的redis服务器中选取一个目标随机码区间,其中,所述redis服务器中存储有各随机码区间对应的随机码;
在所述目标随机码区间中随机获取一个目标随机码,并将所述目标随机码从所述redis服务器的目标随机码区间中消除。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
本申请实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:
响应用户请求获取随机码的请求信息;
判断所述请求信息是否符合校验条件;
若符合,则按照各随机码区间对应的选取概率,从预设的redis服务器中选取一个目标随机码区间,其中,所述redis服务器中存储有各随机码区间对应的随机码;
在所述目标随机码区间中随机获取一个目标随机码,并将所述目标随机码从所述redis服务器的目标随机码区间中消除。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以相互组合,且相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种获取唯一随机码的方法,其特征在于,该方法包括以下步骤:
响应用户请求获取随机码的请求信息;
判断所述请求信息是否符合校验条件;
若符合,则按照各随机码区间对应的选取概率,从预设的redis服务器中选取一个目标随机码区间,其中,所述redis服务器中存储有各随机码区间对应的随机码;
在所述目标随机码区间中随机获取一个目标随机码,并将所述目标随机码从所述redis服务器的目标随机码区间中消除;
所述校验条件包括:登录态校验、资格校验、程序密钥apiKey校验和程序签名apiSign校验;
所述预设的redis服务器包括hash数据结构和set数据结构,其中:
所述set数据结构预先存储有各随机码区间对应的随机码;
所述hash数据结构预先储存有与所述随机码区间对应的区间key、区间库存及选取概率;
在所述按照各随机码区间对应的选取概率,从预设的redis服务器中选取一个目标随机码区间之前,还包括:
获取所述各随机码区间对应的选取概率及区间库存;
判断是否存在区间库存为0的随机码区间;
若存在,则重新规划各随机码区间的选取概率,得到各随机码区间的新的选取概率,并更新所述hash数据结构。
2.根据权利要求1所述的方法,其特征在于,所述按照各随机码区间对应的选取概率,从预设的redis服务器中选取一个目标随机码区间,包括:
根据所述hash数据结构中存储的各随机码区间对应的选取概率,选择一目标区间key;
选取与所述目标区间key对应的目标随机码区间。
3.根据权利要求1所述的方法,其特征在于,所述在所述目标随机码区间中随机获取一个目标随机码,并将所述目标随机码从所述redis服务器的目标随机码区间中消除,包括:
在set数据结构存储的目标随机码区间中随机获取一个目标随机码,并且将所述目标随机码在所述redis服务器的set数据结构中消除;
将hash数据结构中与所述目标随机码区间对应的区间库存减一。
4.根据权利要求1所述的方法,其特征在于,还包括:
若判断所述请求信息不符合校验条件,则终止获取随机码过程并向用户发送报警信息。
5.根据权利要求1所述的方法,其特征在于,所述redis服务器的预设过程,包括:
将由随机码组成的随机码区间写入set数据结构;
将随机码区间对应的选取概率写入hash数据结构;
将随机码区间对应的区间key写入hash数据结构;
将随机码区间对应的区间库存写入hash数据结构。
6.根据权利要求1所述的方法,其特征在于,所述在所述目标随机码区间中随机获取一个目标随机码,并将所述目标随机码从所述redis服务器的目标随机码区间中消除,包括:
利用随机返回删除的元素操作spop,在redis服务器中获取所述目标随机码区间中的一个目标随机码,并从redis服务器的目标随机码区间中消除所述目标随机码。
7.一种获取唯一随机码的装置,其特征在于,该装置包括:
响应单元,用于响应用户请求获取随机码的请求信息;
校验单元,用于判断所述请求信息是否符合校验条件;
所述校验条件包括:登录态校验、资格校验、程序密钥apiKey校验和程序签名apiSign校验;
随机码区间选取单元,用于确定所述校验单元判断所述请求信息符合校验条件时,按照各随机码区间对应的选取概率,从预设的redis服务器中选取一个目标随机码区间,其中,所述redis服务器中存储有各随机码区间对应的随机码;
所述预设的redis服务器包括hash数据结构和set数据结构,其中:
所述set数据结构预先存储有各随机码区间对应的随机码;
所述hash数据结构预先储存有与所述随机码区间对应的区间key、区间库存及选取概率;
随机码获取单元,用于在所述目标随机码区间中随机获取一个目标随机码,并将所述目标随机码从所述redis服务器的目标随机码区间中消除。
8.根据权利要求7所述的装置,其特征在于,还包括:
警报单元,用于确定所述请求信息不符合校验条件时,则终止获取随机码过程并向用户发送报警信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110969024.8A CN113609134B (zh) | 2021-08-23 | 2021-08-23 | 一种获取唯一随机码的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110969024.8A CN113609134B (zh) | 2021-08-23 | 2021-08-23 | 一种获取唯一随机码的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113609134A CN113609134A (zh) | 2021-11-05 |
CN113609134B true CN113609134B (zh) | 2024-05-24 |
Family
ID=78309163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110969024.8A Active CN113609134B (zh) | 2021-08-23 | 2021-08-23 | 一种获取唯一随机码的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113609134B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0795667A (ja) * | 1993-09-25 | 1995-04-07 | Alpine Electron Inc | データ通信装置 |
CN1272939A (zh) * | 1998-06-09 | 2000-11-08 | 松下电器产业株式会社 | 语音编码设备和语音解码设备 |
WO2010100015A1 (en) * | 2009-03-06 | 2010-09-10 | Intrinsic Id B.V. | System for establishing a cryptographic key depending on a physical system |
CN110440421A (zh) * | 2019-08-07 | 2019-11-12 | 珠海格力电器股份有限公司 | 基于随机码的多联机调试方法、分户计费系统及空调 |
KR102132877B1 (ko) * | 2019-01-25 | 2020-07-10 | 주식회사 리얼타임테크 | 분산 데이터베이스 시스템의 대용량 텍스트 로그 데이터 분산 처리 방법 |
CN112434040A (zh) * | 2020-11-30 | 2021-03-02 | 泰康保险集团股份有限公司 | 数据存储方法、数据获取方法及装置、系统及设备 |
CN113067828A (zh) * | 2021-03-25 | 2021-07-02 | 中国建设银行股份有限公司 | 报文处理方法、装置、服务器、计算机设备及存储介质 |
-
2021
- 2021-08-23 CN CN202110969024.8A patent/CN113609134B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0795667A (ja) * | 1993-09-25 | 1995-04-07 | Alpine Electron Inc | データ通信装置 |
CN1272939A (zh) * | 1998-06-09 | 2000-11-08 | 松下电器产业株式会社 | 语音编码设备和语音解码设备 |
WO2010100015A1 (en) * | 2009-03-06 | 2010-09-10 | Intrinsic Id B.V. | System for establishing a cryptographic key depending on a physical system |
KR102132877B1 (ko) * | 2019-01-25 | 2020-07-10 | 주식회사 리얼타임테크 | 분산 데이터베이스 시스템의 대용량 텍스트 로그 데이터 분산 처리 방법 |
CN110440421A (zh) * | 2019-08-07 | 2019-11-12 | 珠海格力电器股份有限公司 | 基于随机码的多联机调试方法、分户计费系统及空调 |
CN112434040A (zh) * | 2020-11-30 | 2021-03-02 | 泰康保险集团股份有限公司 | 数据存储方法、数据获取方法及装置、系统及设备 |
CN113067828A (zh) * | 2021-03-25 | 2021-07-02 | 中国建设银行股份有限公司 | 报文处理方法、装置、服务器、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113609134A (zh) | 2021-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110517097B (zh) | 识别异常用户的方法、装置、设备及存储介质 | |
CN109064031B (zh) | 基于区块链的项目干系人信用评价方法、区块链及存储介质 | |
US7836073B2 (en) | Method and system for transmitting pre-formulated query to database | |
CN105847447B (zh) | 消息推送方法和装置 | |
CN108337210B (zh) | 设备配置方法及装置、系统 | |
CN112527433A (zh) | 页面弹窗控制方法、装置、计算机设备和存储介质 | |
CN111028009A (zh) | 可领取业务实体处理方法和装置 | |
CN114490125A (zh) | 一种针对Raft共识算法中预选举流程的优化方法 | |
CN106331791A (zh) | 一种数据处理方法及装置 | |
CN112347363A (zh) | 一种页面生成方法及装置 | |
CN108520401B (zh) | 用户名单管理方法、装置、平台及存储介质 | |
CN113609134B (zh) | 一种获取唯一随机码的方法及装置 | |
CN112328882A (zh) | 信息推荐方法、装置、终端设备及存储介质 | |
CN111666543A (zh) | 一种基于用户输入习惯的身份认证码生成系统及方法 | |
CN106469166A (zh) | 一种信息处理方法及装置 | |
CN106156169B (zh) | 离散数据的处理方法和装置 | |
CN113157756B (zh) | 互动数据统计方法、装置、电子设备及存储介质 | |
CN112822284B (zh) | 基于动态代理的数据处理方法、装置及计算机设备 | |
CN115437798A (zh) | 共享内存的数据处理方法、装置、设备和介质 | |
CN111475512A (zh) | 一种消息处理方法、装置、电子设备及存储介质 | |
CN116302660B (zh) | 一种重试获取异常信息的方法、系统、计算机和存储介质 | |
CN114285799B (zh) | 一种处理业务的方法、装置、终端及存储介质 | |
CN112702326B (zh) | 密码信息管理方法及密码管理节点 | |
CN110996272B (zh) | 一种游戏业务的验证方法、装置、设备及介质 | |
CN116132528B (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 |