CN110377611B - 积分排名的方法及装置 - Google Patents
积分排名的方法及装置 Download PDFInfo
- Publication number
- CN110377611B CN110377611B CN201910629104.1A CN201910629104A CN110377611B CN 110377611 B CN110377611 B CN 110377611B CN 201910629104 A CN201910629104 A CN 201910629104A CN 110377611 B CN110377611 B CN 110377611B
- Authority
- CN
- China
- Prior art keywords
- point
- account
- updated
- ranking
- integral
- 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
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
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Data Mining & Analysis (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Computing Systems (AREA)
- Economics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种积分排名的方法,属于互联网技术领域。所述方法包括:获取第一账户的积分变化值,向分布式数据库系统查询第一账户的第一积分,基于第一账户的第一积分和积分变化值,确定第一账户的更新积分,基于第一账户的第一积分和更新积分,确定待更新排名的积分范围,向分布式数据库系统查询积分范围内的每个积分对应的排名,对每个积分对应的排名,分别进行更新,得到每个积分的更新排名,分别确定第一账户的更新积分和每个积分的更新排名对应的特征信息,基于第一账户的更新积分和更新排名对应的特征信息,将第一账户的更新积分和每个积分的更新排名,分别发送至分布式数据库系统中的服务器进行存储。采用本申请排名处理效率更高。
Description
技术领域
本申请涉及互联网技术领域,特别涉及一种积分排名的方法及装置。
背景技术
在日常生活中,各类互联网商家一般会在特定时间发起大促销获取,即依照用户在活动中的排名给予用户不同的购买折扣,那么如何实现用户排名就成了关键。
目前,在对用户进行排名时,每个用户在活动中都会对应有一个积分,服务器会存储有用户ID(Identity,身份标识)、积分和排名的对应关系表,当有用户的积分发生变化时,服务器会将该用户在上述对应关系表中的积分进行替换,并对替换后的对应关系表中的排名全部重新计算。
在实现本申请的过程中,发明人发现现有技术至少存在以下问题:
在用户达到几万、几十万甚至更多时,每当用户积分发生变化就要对全部用户的排名进行重新计算,排名处理效率很低。
发明内容
本申请实施例提供了一种积分排名的方法,能够解决排名效率低的问题。所述技术方案如下:
第一方面,提供了一种积分排名的方法,所述方法包括:
获取第一账户的积分变化值,向分布式数据库系统查询所述第一账户的第一积分;
基于所述第一积分和积分变化值,确定所述第一账户的更新积分,基于所述第一积分和所述更新积分,确定待更新排名的积分范围;
向所述分布式数据库系统查询所述积分范围内的每个积分对应的排名,对所述每个积分对应的排名,分别进行更新,得到所述每个积分的更新排名;以及
将所述更新积分和所述每个积分的所述更新排名存储到所述分布式数据库系统中。
可选的,所述将所述更新积分和所述每个积分的所述更新排名存储到所述分布式数据库系统中,包括:
分别确定所述更新积分和所述每个积分的所述更新排名对应的特征信息,基于所述更新积分和所述每个积分的所述更新排名对应的所述特征信息,将所述更新积分和所述每个积分的所述更新排名,分别发送至所述分布式数据库系统中的不同服务器进行存储。
可选的,所述基于所述第一账户的第一积分和所述更新积分,确定待更新排名的积分范围,包括:
如果所述第一账户的所述第一积分小于所述更新积分,则将大于等于所述第一账户的所述第一积分且小于所述更新积分的积分范围,确定为待更新排名的所述积分范围;以及
所述对所述积分范围内的积分对应的排名,分别进行更新,得到更新排名,包括:
对所述积分范围内的积分对应的排名加1,得到更新排名。
可选的,所述基于所述第一积分和所述更新积分,确定待更新排名的积分范围,包括:
如果所述第一积分大于所述更新积分,则将大于等于所述更新积分且小于所述第一积分的积分范围,确定为待更新排名的积分范围;以及
所述对所述积分范围内的积分对应的排名,分别进行更新,得到更新排名,包括:
对所述积分范围内的积分对应的排名减1,得到更新排名。
可选的,所述分别确定所述更新积分和所述每个积分的所述更新排名对应的所述特征信息,基于所述更新积分和所述每个积分的所述特征信息,将所述更新积分和所述每个积分的所述更新排名,分别发送至所述分布式数据库系统中的不同服务器进行存储,包括:
分别确定所述更新积分对应的所述第一账户的第一账户标识的哈希值,和所述每个更新排名对应的积分的哈希值,基于所述第一账户标识的哈希值,和所述每个更新排名对应的积分的哈希值,将所述更新积分和所述每个积分的所述更新排名,分别发送至所述分布式数据库系统中的不同服务器进行存储。
可选的,所述获取第一账户的积分变化值,向分布式数据库系统查询所述第一账户的第一积分,包括:
获取第一账户的积分变化值,基于所述第一账户的第一账户标识的哈希值,在分布式数据库系统中,确定出存储所述第一账户的第一积分的第一服务器,向所述第一服务器查询所述第一账户的所述第一积分。
可选的,所述向所述分布式数据库系统查询所述积分范围内的每个积分对应的排名,包括:
基于所述待更新排名的积分范围内的每个积分的哈希值,在所述分布式数据库系统中,确定出存储所述每个积分对应的排名的服务器,分别向存储所述每个积分对应的排名的服务器查询所述每个积分对应的排名。
可选的,所述方法还包括:
接收目标设备发送的对第二账户的排名查询请求,其中,所述排名查询请求中携带有所述第二账户的第二账户标识;
基于所述第二账户标识的哈希值,在所述分布式数据库系统中,确定出存储所述第二账户的第二积分的第二服务器,向所述第二服务器查询所述第二积分;
基于所述第二积分的哈希值,在所述分布式数据库系统中,确定出存储所述第二积分对应的排名的第三服务器,向所述第三服务器查询所述第二积分对应的排名;
向所述目标设备发送所述第二积分对应的排名。
可选的,在所述分布式数据库系统中,账户的账户标识和积分以键值对的形式存储,积分和对应的排名以键值对的形式存储。
第二方面,提供了一种积分排名的装置,所述装置包括:
获取模块,用于获取第一账户的积分变化值,向分布式数据库系统查询所述第一账户的第一积分;
确定模块,用于基于所述第一积分和积分变化值,确定所述第一账户的更新积分,基于所述第一积分和所述更新积分,确定待更新排名的积分范围;
查询模块,用于向所述分布式数据库系统查询所述积分范围内的每个积分对应的排名,对所述每个积分对应的排名,分别进行更新,得到所述每个积分的更新排名;
更新模块,将所述更新积分和所述每个积分的所述更新排名存储到所述分布式数据库系统中。
可选的,所述更新模块,用于:
分别确定所述更新积分和所述每个积分的所述更新排名对应的特征信息,基于所述更新积分和所述每个积分的所述更新排名对应的所述特征信息,将所述更新积分和所述每个积分的所述更新排名,分别发送至所述分布式数据库系统中的不同服务器进行存储。
可选的,所述确定模块,用于:
如果所述第一账户的所述第一积分小于所述更新积分,则将大于等于所述第一账户的所述第一积分且小于所述更新积分的积分范围,确定为待更新排名的所述积分范围;以及
所述查询模块,用于:
对所述积分范围内的积分对应的排名加1,得到更新排名。
可选的,所述确定模块,用于:
如果所述第一积分大于所述更新积分,则将大于等于所述更新积分且小于所述第一积分的积分范围,确定为待更新排名的积分范围;以及
所述查询模块,用于:
对所述积分范围内的积分对应的排名减1,得到更新排名。
可选的,所述更新模块,用于:
分别确定所述更新积分对应的所述第一账户的第一账户标识的哈希值,和所述每个更新排名对应的积分的哈希值,基于所述第一账户标识的哈希值,和所述每个更新排名对应的积分的哈希值,将所述更新积分和所述每个积分的所述更新排名,分别发送至所述分布式数据库系统中的不同服务器进行存储。
可选的,所述获取模块,用于:
获取第一账户的积分变化值,基于所述第一账户的第一账户标识的哈希值,在分布式数据库系统中,确定出存储所述第一账户的第一积分的第一服务器,向所述第一服务器查询所述第一账户的所述第一积分。
可选的,所述查询模块,用于:
基于所述待更新排名的积分范围内的每个积分的哈希值,在所述分布式数据库系统中,确定出存储所述每个积分对应的排名的服务器,分别向存储所述每个积分对应的排名的服务器查询所述每个积分对应的排名。
可选的,所述装置还包括:
接收模块,用于接收目标设备发送的对第二账户的排名查询请求,其中,所述排名查询请求中携带有所述第二账户的第二账户标识;基于所述第二账户标识的哈希值,在所述分布式数据库系统中,确定出存储所述第二账户的第二积分的第二服务器,向所述第二服务器查询所述第二积分;基于所述第二积分的哈希值,在所述分布式数据库系统中,确定出存储所述第二积分对应的排名的第三服务器,向所述第三服务器查询所述第二积分对应的排名;向所述目标设备发送所述第二积分对应的排名。
可选的,在所述分布式数据库系统中,账户的账户标识和积分以键值对的形式存储,积分和对应的排名以键值对的形式存储。
第三方面,提供了一种服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上述第一方面所述的积分排名的方法所执行的操作。
第四方面,提供了一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如上述第一方面所述的积分排名的方法所执行的操作。
本申请实施例提供的技术方案带来的有益效果是:
通过确定第一账户的更新积分,基于第一账户的第一积分和更新积分,确定待更新排名的积分范围,因为,一个用户的积分发送变化只会对一部分积分的排名产生影响,因此无需在后续对所有的积分都重新进行排名,排名效率也会更高。查询积分范围内的每个积分对应的排名,对每个积分对应的排名,分别进行更新,得到每个积分的更新排名。可以看到,本方法中并非直接对用户进行排名,因为积分是有限的,并且不会太多,而用户数量却可以达到几万、几十万甚至更多,通过对积分进行排名,便可以得出该积分对应的用户对应的排名了,排名效率更高。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的实施环境示意图;
图2是本申请实施例提供的积分排名的方法流程图;
图3是本申请实施例提供的积分排名的方法流程图;
图4是本申请实施例提供的积分排名的装置结构示意图;
图5是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1是本申请实施例提供的一种实施环境的示意图。参见图1,在该实施环境中可以有用户侧的终端、服务器侧的用于计算排名的的服务器和用于存储积分和排名的数据库服务器,数据库服务器可以为Redis数据库服务器,该数据库服务器可以为分布式部署,即在一个分布式数据库系统中包括有多个数据库服务器。
本申请实施例可以应用在如下场景中,互联网商家在一些特殊时间会举办促销活动,用户可以进行参与,参与促销活动的每个用户都可以通过完成一些任务来获得积分,商家可以对参加促销活动的用户进行排名,并可以根据排名给予用户不同的奖励。商家在对用户进行排名时,便可以采用本申请实施例中所提供的积分排名方法。以下以在本场景下应用本方法为例进行说明,其他场景下应用本方法,与此相同或相似,在此不做赘述。
图2是本申请实施例提供的一种积分排名的流程图。参见图2,该实施例包括:
步骤201、获取第一账户的积分变化值,向分布式数据库系统查询第一账户的第一积分。
在实施中,数据库服务器会对参加活动的每个用户的积分进行对应存储。对于用户和积分对应存储的存储形式可以为键值对的形式<ID,积分>,其中,ID为用户注册账户的账户标识,例如,ID为ID1的账户积分为10,则可以存储为<ID1,10>。每个用户最开始参加活动,积分可以为0,也可以不为0。例如,商家可以根据用户日常的购物行为,在初始时给予用户一定的积分。在活动过程中,用户可以通过完成一些小任务,来增加自己的积分。
用户在终端完成一些商家指定任务,服务器会根据预设规则,分配给用户相应的积分。分配的积分大小即为该用户注册的第一账户的积分变化值。当用户的第一账户的第一积分发生变化,服务器可以向分布式数据库系统查询该第一账户的第一积分,此处第一账户的第一积分,为该第一账户已经获得的积分。
在一种可能的实现方式中,每个用户的账户和积分可以根据负载均衡,分布存储在数据库服务器中,那么,在向数据库服务器查询账户和积分时,可以根据同样的负载均衡原理进行查询,相应的,在步骤201中的处理可以如下:获取第一账户的积分变化值,基于第一账户的第一账户标识的哈希值,在分布式数据库系统中,确定出存储第一账户的第一积分的第一服务器,向第一服务器查询第一账户的第一积分。
在实施中,在分布式数据库系统中存储账户和积分时,可以是基于一致性哈希方法存储的,那么,在向分布式数据库系统查询账户和积分时,同样也可以使用一致性哈希方法查询。计算出用户的第一账户的第一账户标识的哈希值,根据该哈希值,在分布式数据库系统中,确定出存储有该第一账户的第一积分的第一服务器。然后,可以向该第一服务器查询第一账户的第一积分。
步骤202、基于第一账户的第一积分和积分变化值,确定第一账户的更新积分,基于第一账户的第一积分和更新积分,确定待更新排名的积分范围。
在实施中,根据查询到的第一账户的第一积分和积分变化值,可以确定得出第一账户的更新积分。该积分变化值可以正值,例如,用户完成指定任务得到了相应积分,那么,积分变化值就可以为正值,该积分变化值也可以为负值,例如,用户使用获得的积分兑换了一些可兑换的商品、代金券等,那么,积分变化值就可以为负值。这样,在确定待更新排名的积分范围时,就可以出现两种情况。
情况一、积分变化值为正值,那么,更新积分为查询到的第一账户的第一积分加上该积分变化值,则更新积分要大于查询到的第一账户的第一积分。可以确定出待更新排名的积分范围为大于等于查询到的第一账户的第一积分,小于第一账户的更新积分,即可以表示为[s,s+n),其中,s为查询到的第一账户的第一积分,n为积分变化值。在更新积分排名时,则只需要对[s,s+n)内的积分对应的排名进行更新,其他积分对应的排名并非受到第一账户的第一积分变化的影响,因此无需重新进行排名。
情况二、积分变化值为负值,那么,更新积分为查询到的第一账户的第一积分加上该积分变化值,则更新积分要小于查询到的第一账户的第一积分。因此,可以确定出待更新排名的积分范围为大于等于更新积分,小于查询到的第一账户的第一积分,即可以表示为[s+n,s),其中,s为查询到的第一账户的第一积分,n为积分变化值。在更新积分排名时,则只需要对[s+n,s)内的积分对应的排名进行更新,其他积分对应的排名并非受到第一账户的第一积分变化的影响,因此无需重新进行排名。
步骤203、向分布式数据库系统查询积分范围内的每个积分对应的排名,对每个积分对应的排名,分别进行更新,得到每个积分的更新排名。
在实施中,积分和对应的排名在分布式数据库系统中对应存储的形式可以为键值对的形式<积分,排名>,例如,<15,6>,即表示积分15,对应的排名为第6。此处,还需说明的是,技术人员可以在活动开始前预先在分布式数据库系统中,存储有积分和对应的排名,因为,在初始状态下,还没有用户参加活动,那么,每个积分对应的排名都是1。即,初始状态下,在分布式数据库系统中,积分和对应的排名为<S0,1>,<S1,1>……<Sn,1>,其中,S0代表最小的积分,Sn代表最大的积分,可见,每个积分对应的排名都是1,只在有用户参加活动后,积分对应的排名才会发生改变。
在确定出待更新排名的积分范围后,可以向分布式数据库服务器查询该积分范围内的积分对应的排名,可以向分布式数据库系统中每个服务器均发生查询请求,并由存储有相应积分和对应的排名的服务器,将相应积分和对应的排名返回。在查询到积分范围内的积分和对应的排名后,要计算每个积分的更新排名,对于上述步骤202中的第一账户的更新积分和查询到的第一账户的第一积分的大小关系的两种情况,在计算更新积分时也可以分为两种情况。
情况一、第一账户的积分变化值为正,更新积分大于查询到的第一账户的第一积分,此时,可以对积分范围内的积分对应的排名加1,得到更新排名。以下列举一列进行说明,在分布式数据库系统中,积分和对应的排名关系,可以如下表1,需要说明的是,表1只是为了更直观的说明积分和对应的排名,并不代表积分和对应的排名在分布式数据库系统中的实际存储形式。
表1
积分 | 排名 |
5 | 1 |
4 | 6 |
3 | 10 |
2 | 15 |
1 | 19 |
由表1可以看出,目前,积分5的排名为第一,积分4的排名为第六,即说明,积分为5的账户有5个,其余积分和对应的排名与此情况类似,在此不做赘述。第一账户的第一积分增加了2,从3变为5,那么待更新排名的积分范围就为[3,5),由表1可以得出,该积分范围内的积分为3和4,对应的排名分别为10和6。因为,第一账户的第一积分由3变成了5,则说明积分为3的账户少了一个,积分为5的账户多了一个。在此之前,积分为5的账户有5个,现在积分5的账户有6个,那么,积分4对应的排名就要加1,变为7,积分3对应的排名也要加1,变为11。可以看出,因为积分3和积分5均大于积分2和积分1,积分为3到5的账户总数并没有发生变化,则积分2和积分1的排名不需要变化。那么,更新后的排名就变成了如表2所示。
表2
积分 | 排名 |
5 | 1 |
4 | 7 |
3 | 11 |
2 | 15 |
1 | 19 |
情况二、第一账户的积分变化值为负,更新积分小于查询到的第一账户的第一积分,此时,可以对积分范围内的积分对应的排名减1,得到更新排名。以下列举一列进行说明,在分布式数据库系统中,积分和对应的排名关系,可以如上表1。第一账户的第一积分减小了2,从4变为2,那么待更新排名的积分范围就为[2,4),由表1可以得出,该积分范围内的积分为2和3,对应的排名分别为15和10。因为,第一账户的第一积分由4变成了2,则说明积分为4的账户少了一个,积分为2的账户多了一个。在此之前,积分为4的账户有4个,现在积分4的账户有3个,那么,积分3对应的排名就要减1,变为9,积分2对应的排名也要减1,变为14。可以看出,因为积分2和积分4均大于积分1,积分为2到5的账户总数并没有发生变化,则积分1的排名不需要变化。那么,更新后的排名就变成了如表3所示。
表3
积分 | 排名 |
5 | 1 |
4 | 6 |
3 | 9 |
2 | 14 |
1 | 19 |
在一种可能的实现方式中,每个积分和对应的排名可以根据负载均衡,分布存储在数据库服务器中,那么,在向数据库服务器查询积分和对应的排名时,可以根据同样的负载均衡原理进行查询,相应的,在步骤203中的处理可以如下:基于待更新排名的积分范围内的每个积分的哈希值,在分布式数据库系统中,确定出存储所述每个积分对应的排名的服务器,分别向存储每个积分对应的排名的服务器查询每个积分对应的排名。
在实施中,在分布式数据库系统中存储积分和对应的排名时,可以是基于一致性哈希方法存储的,那么,在向分布式数据库系统查询积分和对应的排名时,同样也可以使用一致性哈希方法查询。计算出积分范围内每个积分的哈希值,根据每个积分的哈希值,在分布式数据库系统中,确定出存储有每个积分对应的排名的服务器。然后,可以向相应的服务器查询积分对应的排名。
步骤204、将第一账户的更新积分和积分范围内的每个积分的更新排名存储到分布式数据库系统中。
在实施中,将确定出的第一账户的更新积分和积分范围内的每个积分的更新排名发送到分布式数据库系统中,由分布式系统中的各服务器对上述更新积分和更新排名进行存储。
在一种可能的实现方式中,分布式数据库系统可以根据负载均衡对上述第一账户的更新积分和积分范围内的每个积分的更新排名进行存储,相应的,在步骤204中的处理可如下:分别确定第一账户的更新积分和积分范围内的每个积分的更新排名对应的特征信息,基于第一账户的更新积分和每个积分的更新排名对应的特征信息,将第一账户的更新积分和每个积分的更新排名,分别发送至分布式数据库系统中的不同服务器进行存储。
其中,特征信息可以为哈希值,第一账户的更新积分的特征信息可以为第一账户的第一账户标识的哈希值,每个积分的更新排名对应的特征信息可以为每个积分的哈希值。
在实施中,分布式数据库系统在存储第一账户和第一积分,以及第一积分和对应的排名时,都可以是基于一致性哈希的负载均衡进行存储的,那么,在对第一账户的第一积分,以及积分对应的排名进行更新存储时,也可以使用一致性哈希方法,确定出存储有第一账户的服务器和存储有相应积分排名的服务器。相应的,处理可以如下:
分别确定更新积分对应的第一账户的第一账户标识的哈希值,和每个更新排名对应的积分的哈希值,基于第一账户标识的哈希值,确定出存储第一账户和第一账户的第一积分的服务器,将第一账户的更新积分发送给该服务器,该服务器对其进行存储。服务器在对第一账户的积分进行存储时,可以将已经存储的第一账户的第一积分替换为该更新积分。基于每个更新排名对应的积分的哈希值,确定出存储有每个更新排名对应的积分和这些积分对应的排名的服务器,将每个积分的更新排名,分别发送至相应的服务器进行存储。同样的,服务器在对每个积分的更新排名进行存储时,可以将已经存储的这些积分的排名替换为相应的更新排名。
除上述计算积分排名的方法,本申请实施例还提供一种查询账户排名的方法,此方法可以先查询用户积分,基于账户的积分确定出积分排名,即可得出账户排名,无需数据库存储有每个账户的排名,可以大大节省存储资源,还可以提高查询效率。图3是本申请实施例提供的一种查询账户排名的流程图,对于账户排名查询可以与上述图2所示的积分排名计算是同一服务器完成的,也可以是不同服务器完成的,在此不做限定。参见图3,该实施例包括:
步骤301、接收目标设备发送的对第二账户的排名查询请求。
其中,目标设备可以为用户的终端,用户想要得知自己的账户排名,则可以发送排名查询请求,还可以为商家的终端为了得知每个参加活动的用户的账户排名,可以发送排名查询请求。排名查询请求中携带有第二账户的第二账户标识。
步骤302、基于第二账户的第二账户标识的哈希值,在分布式数据库系统中,确定出存储第二账户的第二积分的第二服务器,向第二服务器查询第二账户的第二积分。
在实施中,可以计算出第二账户的第二账户标识的哈希值,基于一致性哈希方法,在分布式数据系统中,确定出存储第二账户的第二积分的第二服务器,然后,可以直接向该第二服务器查询第二账户的第二积分。便可以接收到该第二服务器返回的第二账户的第二积分。
步骤303、基于第二账户的第二积分的哈希值,在分布式数据库系统中,确定出存储第二账户的第二积分对应的排名的第三服务器,向第三服务器查询第二账户的第二积分对应的排名。
在实施中,计算出查询到的第二账户的第二积分的哈希值,基于一致性哈希方法,在分布式数据系统中确定出存储第二账户的第二积分对应的排名的第三服务器,然后,可以直接向该第三服务器查询第二账户的第二积分对应的排名。便可以接受到该第三服务器返回的第二账户的第二积分对应的排名。
步骤304、向目标设备发送第二账户的第二积分对应的排名。
在实施中,将查询到的第二账户的第二积分对应的排名发送给目标设备,便完成了一次账户排名查询。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
基于相同的技术构思,本申请实施例还提供了一种积分排名的装置,该装置可以为上述实施例中用于计算积分排名的服务器,如图4所示,该装置包括:获取模块410,确定模块420,查询模块430和更新模块440。
获取模块410,用于获取第一账户的积分变化值,向分布式数据库系统查询所述第一账户的第一积分;
确定模块420,用于基于所述第一积分和积分变化值,确定所述第一账户的更新积分,基于所述第一积分和所述更新积分,确定待更新排名的积分范围;
查询模块430,用于向所述分布式数据库系统查询所述积分范围内的每个积分对应的排名,对所述每个积分对应的排名,分别进行更新,得到所述每个积分的更新排名;
更新模块440,用于将所述更新积分和所述每个积分的所述更新排名存储到所述分布式数据库系统中。
可选的,所述更新模块440,用于;
分别确定所述更新积分和所述每个积分的所述更新排名对应的特征信息,基于所述更新积分和所述每个积分的所述更新排名对应的所述特征信息,将所述更新积分和所述每个积分的所述更新排名,分别发送至所述分布式数据库系统中的不同服务器进行存储。
可选的,所述确定模块420,用于:
如果所述第一账户的所述第一积分小于所述更新积分,则将大于等于所述第一账户的所述第一积分且小于所述更新积分的积分范围,确定为待更新排名的所述积分范围;
所述查询模块430,用于:
对所述积分范围内的积分对应的排名加1,得到更新排名。
可选的,所述确定模块420,用于:
如果所述第一积分大于所述更新积分,则将大于等于所述更新积分且小于所述第一积分的积分范围,确定为待更新排名的积分范围;
所述查询模块430,用于:
对所述积分范围内的积分对应的排名减1,得到更新排名。
可选的,所述更新模块440,用于:
分别确定所述更新积分对应的所述第一账户的第一账户标识的哈希值,和所述每个更新排名对应的积分的哈希值,基于所述第一账户标识的哈希值,和所述每个更新排名对应的积分的哈希值,将所述更新积分和所述每个积分的所述更新排名,分别发送至所述分布式数据库系统中的不同服务器进行存储。
可选的,所述获取模块410,用于:
获取第一账户的积分变化值,基于所述第一账户的第一账户标识的哈希值,在分布式数据库系统中,确定出存储所述第一账户的第一积分的第一服务器,向所述第一服务器查询所述第一账户的所述第一积分。
可选的,所述查询模块430,用于:
基于所述待更新排名的积分范围内的每个积分的哈希值,在所述分布式数据库系统中,确定出存储所述每个积分对应的排名的服务器,分别向存储所述每个积分对应的排名的服务器查询所述每个积分对应的排名。
可选的,所述装置还包括:
接收模块,用于接收目标设备发送的对第二账户的排名查询请求,其中,所述排名查询请求中携带有所述第二账户的第二账户标识;基于所述第二账户标识的哈希值,在所述分布式数据库系统中,确定出存储所述第二账户的第二积分的第二服务器,向所述第二服务器查询所述第二积分;基于所述第二积分的哈希值,在所述分布式数据库系统中,确定出存储所述第二积分对应的排名的第三服务器,向所述第三服务器查询所述第二积分对应的排名;向所述目标设备发送所述第二积分对应的排名。
可选的,在所述分布式数据库系统中,账户的账户标识和积分以键值对的形式存储,积分和对应的排名以键值对的形式存储。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
需要说明的是:上述实施例提供的积分排名的装置在积分排名时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的积分排名的装置与积分排名的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述实施例中的识别动作类别的方法。例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图5是本申请实施例提供的一种服务器的结构示意图,该计算机设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processingunits,CPU)501和一个或一个以上的存储器502,其中,所述存储器502中存储有至少一条指令,所述至少一条指令由所述处理器501加载并执行以实现上述积分排名的方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种积分排名的方法,其特征在于,所述方法包括:
获取第一账户的积分变化值,向分布式数据库系统查询所述第一账户的第一积分;
基于所述第一积分和积分变化值,确定所述第一账户的更新积分,基于所述第一积分和所述更新积分,确定待更新排名的积分范围;
基于所述待更新排名的积分范围内的每个积分的哈希值,在所述分布式数据库系统中,确定出存储所述每个积分对应的排名的服务器,分别向存储所述每个积分对应的排名的服务器查询所述每个积分对应的排名,对所述每个积分对应的排名,分别进行更新,得到所述每个积分的更新排名;以及
分别确定所述更新积分对应的所述第一账户的第一账户标识的哈希值,和所述每个更新排名对应的积分的哈希值,基于所述第一账户标识的哈希值,和所述每个更新排名对应的积分的哈希值,将所述更新积分和所述每个积分的所述更新排名,分别发送至所述分布式数据库系统中的不同服务器进行存储。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一账户的第一积分和所述更新积分,确定待更新排名的积分范围,包括:
如果所述第一账户的所述第一积分小于所述更新积分,则将大于等于所述第一账户的所述第一积分且小于所述更新积分的积分范围,确定为待更新排名的所述积分范围;以及
所述对所述积分范围内的积分对应的排名,分别进行更新,得到更新排名,包括:
对所述积分范围内的积分对应的排名加1,得到更新排名。
3.根据权利要求1所述的方法,其特征在于,所述基于所述第一积分和所述更新积分,确定待更新排名的积分范围,包括:
如果所述第一积分大于所述更新积分,则将大于等于所述更新积分且小于所述第一积分的积分范围,确定为待更新排名的积分范围;以及
所述对所述积分范围内的积分对应的排名,分别进行更新,得到更新排名,包括:
对所述积分范围内的积分对应的排名减1,得到更新排名。
4.根据权利要求1所述的方法,其特征在于,所述获取第一账户的积分变化值,向分布式数据库系统查询所述第一账户的第一积分,包括:
获取第一账户的积分变化值,基于所述第一账户的第一账户标识的哈希值,在分布式数据库系统中,确定出存储所述第一账户的第一积分的第一服务器,向所述第一服务器查询所述第一账户的所述第一积分。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收目标设备发送的对第二账户的排名查询请求,其中,所述排名查询请求中携带有所述第二账户的第二账户标识;
基于所述第二账户标识的哈希值,在所述分布式数据库系统中,确定出存储所述第二账户的第二积分的第二服务器,向所述第二服务器查询所述第二积分;
基于所述第二积分的哈希值,在所述分布式数据库系统中,确定出存储所述第二积分对应的排名的第三服务器,向所述第三服务器查询所述第二积分对应的排名;
向所述目标设备发送所述第二积分对应的排名。
6.根据权利要求1所述的方法,其特征在于,在所述分布式数据库系统中,账户的账户标识和积分以键值对的形式存储,积分和对应的排名以键值对的形式存储。
7.一种积分排名的装置,其特征在于,所述装置包括:
获取模块,用于获取第一账户的积分变化值,向分布式数据库系统查询所述第一账户的第一积分;
确定模块,用于基于所述第一积分和积分变化值,确定所述第一账户的更新积分,基于所述第一积分和更新积分,确定待更新排名的积分范围;
查询模块,用于基于所述待更新排名的积分范围内的每个积分的哈希值,在所述分布式数据库系统中,确定出存储所述每个积分对应的排名的服务器,分别向存储所述每个积分对应的排名的服务器查询所述每个积分对应的排名,对所述每个积分对应的排名,分别进行更新,得到所述每个积分的更新排名;
更新模块,用于分别确定所述更新积分对应的所述第一账户的第一账户标识的哈希值,和所述每个更新排名对应的积分的哈希值,基于所述第一账户标识的哈希值,和所述每个更新排名对应的积分的哈希值,将所述更新积分和所述每个积分的所述更新排名,分别发送至所述分布式数据库系统中的不同服务器进行存储。
8.一种服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至权利要求6任一项所述的积分排名的方法所执行的操作。
9.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至权利要求6任一项所述的积分排名的方法所执行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910629104.1A CN110377611B (zh) | 2019-07-12 | 2019-07-12 | 积分排名的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910629104.1A CN110377611B (zh) | 2019-07-12 | 2019-07-12 | 积分排名的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110377611A CN110377611A (zh) | 2019-10-25 |
CN110377611B true CN110377611B (zh) | 2022-07-15 |
Family
ID=68253001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910629104.1A Active CN110377611B (zh) | 2019-07-12 | 2019-07-12 | 积分排名的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110377611B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111464826B (zh) * | 2020-04-14 | 2022-09-09 | 北京达佳互联信息技术有限公司 | 虚拟资源的榜单更新方法、装置、电子设备及存储介质 |
CN111666302A (zh) * | 2020-05-28 | 2020-09-15 | 广州虎牙科技有限公司 | 用户排名的查询方法、装置、设备及存储介质 |
CN112000885B (zh) * | 2020-08-14 | 2022-09-30 | 广州市百果园信息技术有限公司 | 榜单服务系统、榜单生成方法、服务器及存储介质 |
CN115145533A (zh) * | 2022-06-20 | 2022-10-04 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105320676A (zh) * | 2014-07-04 | 2016-02-10 | 中国移动通信集团黑龙江有限公司 | 一种客户数据查询服务方法及装置 |
CN105354005A (zh) * | 2015-10-30 | 2016-02-24 | 小米科技有限责任公司 | 更新积分排名的方法及装置 |
CN107705138A (zh) * | 2017-11-02 | 2018-02-16 | 创通票科技有限公司 | 服务机构排名的积分算法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050097105A1 (en) * | 2002-02-06 | 2005-05-05 | Jari Ranta | Distributed database for one search key |
CN102833294B (zh) * | 2011-06-17 | 2015-05-20 | 阿里巴巴集团控股有限公司 | 基于云存储的文件处理方法、系统及服务器集群系统 |
WO2013078611A1 (zh) * | 2011-11-29 | 2013-06-06 | 华为技术有限公司 | 分布式存储系统中的数据处理方法及设备、客户端 |
CN104050249B (zh) * | 2011-12-31 | 2018-03-30 | 北京奇虎科技有限公司 | 分布式查询引擎系统和方法及元数据服务器 |
CN102819599B (zh) * | 2012-08-15 | 2016-06-01 | 华数传媒网络有限公司 | 在一致性哈希数据分布基础上构建层次目录的方法 |
CN103888499B (zh) * | 2012-12-21 | 2018-08-14 | 中国科学院深圳先进技术研究院 | 一种分布式对象处理的方法及系统 |
CN105260136B (zh) * | 2015-09-24 | 2019-04-05 | 北京百度网讯科技有限公司 | 数据读写方法及分布式存储系统 |
CN107291710B (zh) * | 2016-03-30 | 2020-07-03 | 杭州海康威视数字技术股份有限公司 | 一种用于分布式数据库系统的更新数据的方法及装置 |
-
2019
- 2019-07-12 CN CN201910629104.1A patent/CN110377611B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105320676A (zh) * | 2014-07-04 | 2016-02-10 | 中国移动通信集团黑龙江有限公司 | 一种客户数据查询服务方法及装置 |
CN105354005A (zh) * | 2015-10-30 | 2016-02-24 | 小米科技有限责任公司 | 更新积分排名的方法及装置 |
CN107705138A (zh) * | 2017-11-02 | 2018-02-16 | 创通票科技有限公司 | 服务机构排名的积分算法 |
Also Published As
Publication number | Publication date |
---|---|
CN110377611A (zh) | 2019-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110377611B (zh) | 积分排名的方法及装置 | |
CN110134516B (zh) | 金融数据处理方法、装置、设备及计算机可读存储介质 | |
CN110738479B (zh) | 基于多人点单的订单管理方法及系统 | |
CN111522641A (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
US11494293B2 (en) | Testing systems and methods | |
CN113476853A (zh) | 交互任务的数据处理方法、装置、电子设备、存储介质 | |
CN111400301B (zh) | 一种数据查询方法、装置及设备 | |
CN107193749B (zh) | 测试方法、装置及设备 | |
CN115827646B (zh) | 索引配置方法、装置和电子设备 | |
CN110505276B (zh) | 对象匹配方法、装置及系统、电子设备及存储介质 | |
CN110909072A (zh) | 一种数据表建立方法、装置及设备 | |
CN116303418A (zh) | 基于物联网平台的海量规则处理方法、系统及存储介质 | |
CN113157249B (zh) | 标识号生成方法、装置、电子设备及存储介质 | |
CN114691630A (zh) | 一种智慧供应链大数据共享方法及系统 | |
CN111031052B (zh) | 基于多应用程序的数据处理方法、计算设备及存储介质 | |
CN111192088B (zh) | 积分的结算对象确定方法及装置和计算机可读存储介质 | |
CN110427390B (zh) | 数据查询方法及装置、存储介质、电子装置 | |
CN111831425B (zh) | 一种数据处理方法、装置及设备 | |
CN113919908A (zh) | 一种订单处理方法、系统、电子设备及存储介质 | |
CN108932284B (zh) | 通用逻辑调度方法、电子设备及可读存储介质 | |
CN113742581A (zh) | 榜单的生成方法、装置、电子设备及可读存储介质 | |
CN111767060A (zh) | 多阶段灰度验证方法、装置、电子设备及介质 | |
CN111144786A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN116401274B (zh) | 一种快速响应积分客户号的方法、系统 | |
CN112308583A (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 |