掌桥专利:专业的专利平台
掌桥专利
首页

签到数据的处理方法、装置、存储介质及计算机设备

文献发布时间:2023-06-19 11:16:08


签到数据的处理方法、装置、存储介质及计算机设备

技术领域

本申请涉及计算机技术领域,尤其涉及游戏技术领域,具体涉及一种签到数据的处理方法、装置、存储介质及计算机设备。

背景技术

签到任务是互联网软件提高日活的常用手段,目前,比较常见的两种签到统计方式为通过数据库直接记录用户签到日志的方式,和通过redis缓存数据库的位图模式记录用户签到日志的方式。

然而,这两种统计方式均会产生大量的签到日志,导致占用较大的存储空间,且都需要额外增加定时任务去清理数据,导致存储空间无法及时释放,容易造成系统卡顿、崩溃等问题。

发明内容

本申请实施例提供一种签到数据的处理方法、装置、存储介质及计算机设备,无需额外增加定时任务去清理数据即可及时清除无效数据,从而释放存储空间。

本申请实施例提供了一种签到数据的处理方法,包括:

获取第一签到数据,并将所述第一签到数据保存至键-值存储数据库中;

确定所述第一签到数据对应签到用户的累计签到次数;

根据预设签到规则和所述累计签到次数通过键-值存储数据库的生存时间TTL命令设置所述第一签到数据对应签到用户的全部签到数据的生存时间;

若所述第一签到数据对应签到用户在所述生存时间内的指定时间段内未产生指定操作数据,则删除所述第一签到数据对应签到用户的全部签到数据。

可选的,所述根据预设签到规则和所述累积签到次数通过键-值存储数据库的生存时间TTL命令设置所述第一签到数据对应签到用户的全部签到数据的生存时间,包括:

若所述累计签到次数小于预设次数,则通过键-值存储数据库的生存时间TTL命令将与预设签到规则对应的第一预设时间设置为所述第一签到数据对应签到用户的全部签到数据的生存时间。

可选的,所述指定操作数据包括第二签到数据,所述指定时间段包括第一时间段,所述若所述第一签到数据对应签到用户在所述生存时间内的指定时间段内未产生指定操作数据,则删除所述第一签到数据对应签到用户的全部签到数据,包括:

若所述第一签到数据对应签到用户在所述生存时间内的第一时间段内未产生所述第二签到数据,则删除所述第一签到数据对应签到用户的全部签到数据。

可选的,所述签到数据的处理方法还包括:若所述第一签到数据对应签到用户在所述生存时间内的第一时间段内产生第二签到数据,则将所述第二签到数据保存至键-至存储数据库中,并返回执行所述确定所述第一签到数据对应签到用户的累计签到次数的步骤。

可选的,所述根据预设签到规则和所述累积签到次数通过键-值存储数据库的生存时间TTL命令设置所述第一签到数据对应签到用户的全部签到数据的生存时间,包括:

若所述累计签到次数大于预设次数,则通过键-值存储数据库的生存时间TTL命令将与预设签到规则对应的第二预设时间设置为所述第一签到数据对应签到用户的全部签到数据的生存时间。

可选的,所述指定操作数据包括奖励领取数据,所述指定时间段包括第二时间段,所述若所述第一签到数据对应签到用户在所述生存时间内的指定时间段未产生指定操作数据,则删除所述第一签到数据对应签到用户的全部签到数据,包括:

若所述第一签到数据对应签到用户在所述生存时间内的第二时间段内未产生所述奖励领取数据,则删除所述第一签到数据对应签到用户的全部签到数据。

可选的,所述签到数据的处理方法还包括:若所述第一签到数据对应签到用户在所述生存时间内的第二时间段内产生所述奖励领取数据,则删除所述第一签到数据对应签到用户的全部签到数据。

可选的,所述键-值存储数据库包括redis缓存数据库,所述将所述第一签到数据保存至键-值存储数据库中,包括:

将所述第一签到数据保存至所述redis缓存数据库中所述第一签到数据对应签到用户对应的哈希表中。

可选的,所述第一签到数据包括用户标识,所述将所述第一签到数据保存至所述redis缓存数据库中所述第一签到数据对应签到用户对应的哈希表中,包括:

根据所述用户标识确定所述第一签到数据是否为初次签到数据;

若所述第一签到数据为初次签到数据,则根据所述用户标识新建哈希表,并将所述第一签到数据保存至所述新建的哈希表中;

若所述第一签到数据不为初次签到数据,则根据所述用户标识将所述第一签到数据保存至对应已存在的哈希表中。

可选的,所述redis缓存数据库的全部哈希表的名称与用户标识一一对应,所述根据所述用户标识确定所述第一签到数据是否为初次签到数据,包括:

判断所述redis缓存数据库的全部哈希表中是否存在与用户标识对应的哈希表;

若所述redis缓存数据库的全部哈希表中存在与用户标识对应的哈希表,则确定所述第一签到数据不为初次签到数据;

若所述redis缓存数据库的全部哈希表中不存在与用户标识对应的哈希表,则确定所述第一签到数据为初次签到数据。

可选的,所述确定所述第一签到数据对应签到用户的累计签到次数,包括:

根据所述第一签到数据中的用户标识,通过HLEN命令获取所述redis缓存数据库中所述用户标识对应的哈希表中字段的数量,并将所述数量确定为所述第一签到数据对应签到用户的累计签到次数。

可选的,所述根据所述累计签到次数通过键-值存储数据库的TTL命令设置所述第一签到数据对应签到用户的全部签到数据的生存时间,包括:

根据所述累计签到次数通过redis缓存数据库的TTL命令设置所述第一签到数据所在哈希表的生存时间。

可选的,所述若所述第一签到数据对应签到用户在所述生存时间内的指定时间段内未产生指定操作数据,则删除所述第一签到数据对应签到用户的全部签到数据,包括:

若所述第一签到数据对应签到用户在所述生存时间内的指定时间段内未产生指定操作数据,则将所述第一签到数据所在哈希表删除。

可选的,所述获取签到数据包括:

从消息订阅系统中获取签到数据。

本申请实施例还提供一种签到数据的处理装置,包括:

获取模块,用于获取第一签到数据,并将所述第一签到数据保存至键-值存储数据库中;

确定模块,用于确定所述第一签到数据对应签到用户的累计签到次数;

设置模块,用于根据预设签到规则和所述累计签到次数通过键-值存储数据库的TTL命令设置所述第一签到数据对应签到用户的全部签到数据的生存时间;

删除模块,用于若所述第一签到数据对应签到用户在所述生存时间内的指定时间段内未产生指定操作数据,则删除所述第一签到数据对应签到用户的全部签到数据。

本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如上任一实施例所述的签到数据的处理方法中的步骤。

本申请实施例还提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如上任一实施例所述的签到数据的处理方法中的步骤。

本申请实施例提供的签到数据的处理方法、装置、存储介质及计算机设备,通过redis缓存数据库的TTL设置哈希表的生存时间,可以自动清除无效的签到数据,而无需增加额外的定时任务去清理数据,从而及时清除无效的签到数据,释放存储空间。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的签到数据的处理装置的系统示意图。

图2为本申请实施例提供的签到数据的处理方法的流程示意图。

图3为本申请实施例提供的哈希表的结构示意图。

图4为本申请实施例提供的签到数据的处理方法的第一应用场景示意图。

图5为本申请实施例提供的签到数据的处理方法的第二应用场景示意图。

图6为本申请实施例提供的签到数据的处理方法的另一流程示意图。

图7为本申请实施例提供的签到数据的处理装置的结构示意图。

图8为本申请实施例提供的计算机设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例提供一种签到数据的处理方法、装置、存储介质及计算机设备。具体地,本申请实施例的签到数据的处理方法可以由计算机设备执行,其中,该计算机设备可以为服务器。该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。

请参阅图1,请参阅图1,图1为本申请实施例提供的签到数据的处理装置的系统示意图。该系统可以包括至少一个终端,至少一个消息订阅系统以及服务器,其中,终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,PersonalComputer)、个人数字助理(Personal Digital Assistant,PDA)等终端设备,终端中包括客户端,该客户端可以是游戏应用客户端、携带有游戏程序的浏览器客户端或即时通信客户端等。终端可以通过网络连接到服务器。另外,终端具有用于感测和获得用户通过在一个或者多个触控显示屏的多个点执行的触摸或者滑动操作的输入的一个或者多个多触敏屏幕。另外,当系统包括多个终端、多个服务器时,不同的终端可以通过不同的网络、通过不同的服务器2000相互连接。网络可以是无线网络或者有线网络,比如无线网络为无线局域网(WLAN)、局域网(LAN)、蜂窝网络、2G网络、3G网络、4G网络、5G网络等。另外,不同的终端之间也可以使用自身的蓝牙网络或者热点网络连接到其他终端或者连接到服务器等。例如,多个用户可以通过不同的终端在线从而通过适当网络连接并且相互同步,以支持多玩家游戏。

譬如,如图1所示,当用户通过终端中的客户端进行签到时,客户端发送签到数据至消息订阅系统,之后,服务器可以从消息订阅系统中获取签到数据,并将签到数据保存至键-值存储数据库中,接着,确定该签到数据对应签到用户的累计签到次数,并根据预设签到规则和累计签到次数设置签到数据的生存时间,若在生存时间内的指定时间段内未产生指定操作数据,则将签到数据删除。

本申请实施例提供了一种签到数据的处理方法,该方法可以由服务器执行。请参阅图2,图2为本申请实施例提供的签到数据的处理方法的流程示意图,该方法主要可以包括步骤101至步骤104,说明如下:

步骤101:获取第一签到数据,并将第一签到数据保存至键-值存储数据库中。

为了便于理解,此处对该签到数据的处理方法的应用场景进行相应的解释。具体地,用户签到任务在互联网软件上的应用已经非常的广泛,例如,很多终端游戏利用签到任务来提升用户粘性,比如通过设置具有吸引力的奖励(经验值、金币或服装等),引导用户每日登陆游戏进行签到,从而提高游戏的DAU(Daily Active User,日活跃用户或日活)数量。然而,在现有的统计签到数据的方式中,无论是通过数据库直接记录用户的签到数据、还是通过redis缓存数据库的位图模式去记录用户的签到数据,在查询用户签到任务进度时,均面临着计算复杂的问题,且对于一个用户较多的软件来说,将会产生大量的签到数据,将占用很大的存储空间,由此可见,现有的统计签到数据的方式存在一定的弊端。

具体地,上述步骤“获取第一签到数据”具体可以包括:从消息订阅系统中获取第一签到数据。

在本申请实施例中,以游戏软件的客户端和服务器对本申请提供的签到数据的处理方法进行说明。例如,请参阅图4,图4为本申请实施例提供的第一应用场景示意图,如图4所示,该终端1000包括用户界面100,其中,该终端1000的用户界面100上显示有游戏客户端的签到界面10,该签到界面10上包括任务栏11、12和13,如图所示,该任务栏11上设置有签到按钮111,该签到按钮111上设置有埋点,当用户点击该签到按钮111时,游戏客户端可以捕捉到用户的签到行为,并将用户的签到数据上传至消息订阅系统以供服务器获取。具体地,该签到数据可以包括用户的id(用户名)、签到的具体时间等。

具体地,消息订阅系统可以为Kafka。容易理解的是,游戏客户端的用户数量较多,在同一时间点可能存在很多用户同时签到,因此,针对这种高并发,大数据量的签到行为,将签到数据发送至消息订阅系统,实现对签到数据的异步处理,可以让服务器快速的接收请求,从而降低服务器线程阻塞的可能。

具体地,该键-值存储数据库包括redis缓存数据库,步骤“将第一签到数据保存至键-值存储数据库中”具体可以包括:将第一签到数据保存至redis缓存数据库中该第一签到数据对应签到用户对应的哈希表中。

在本实施例中,可以通过redis缓存数据库的哈希表来存储签到数据。具体地,第一签到数据中可以包括用户id、签到日期以及签到的具体时间。其中,哈希表是一个键-值对(key-value pair)形式的数据结构,在redis缓存数据库中,可以为每个签到用户建立一个与之相应的哈希表即以签到用户的用户id为每个哈希表命名,在以该用户id命名的哈希表存储该签到用户的签到数据,具体格式可以为:user_continuous_sign:xxx,其中,xxx为用户id。

具体地,在哈希表中,key用来存储签到日期,可以为yyyy-mm-dd的格式,如此,当需要查询签到用户的历史签到数据时,可以一目了然地查询到用户的签到日期;value则用来存储用户签到的时间戳,当需要精确查询签到用户进行签到的具体时刻时,可以使用value字段进行查询。具体地,key与value一一对应。

具体地,请参阅图3,图3为本申请实施例提供的哈希表的结构示意图,譬如,在签到用户A对应的哈希表user_continuous_sign:A中,存储有签到用户A每次签到的签到日期以及签到时间戳。

在本实施例中,第一签到数据中包含用户标识,步骤“将第一签到数据保存至redis缓存数据库中该第一签到数据对应签到用户对应的哈希表中”主要可以包括:根据用户标识确定该第一签到数据是否为初次签到数据;若该第一签到数据为初次签到数据,则根据用户标识新建哈希表,并将该第一签到数据保存至新建的哈希表中;若第一签到数据不为初次签到数据,则根据用户标识将该第一签到数据保存至对应已存在的哈希表中。

容易理解的是,当用户初次签到时,需要为该用户新建一个哈希表以存储该用户的签到数据。

具体地,步骤“根据用户标识确定该第一签到数据是否为初次签到数据”具体可以包括:判断redis缓存数据库的全部哈希表中是否存在与用户标识对应的哈希表;若redis缓存数据库的全部哈希表中存在与用户标识对应的哈希表,则确定第一签到数据不为初次签到数据;若redis缓存数据库的全部哈希表中不存在与用户标识对应的哈希表,则确定第一签到数据为初次签到数据。

容易理解的是,redis缓存数据库的全部哈希表的名称与用户标识一一对应,因此,若redis缓存数据库中不存在与用户标识对应的哈希表,则可以认为该用户为初次签到,该第一签到数据为初次签到数据库,则新建一个以该用户标识命名的哈希表,并将该第一签到数据保存至该新建的哈希表中。若redis缓存数据库中存在于与户标识对应的哈希表,则可以认为该用户不为初次签到,可以直接将该第一签到数据保存至该与用户标识对应的哈希表中。

在一些实施例中,步骤“根据用户标识确定该第一签到数据是否为初次签到数据”具体可以包括:通过HLEN命令获取redis缓存数据库中该用户标识对应的哈希表中字段的数量;若该数量为零,则确定该第一签到数据为初次签到数据;若该数量不为零,则确定该第一签到数据不为初次签到数据。

具体地,HLEN命令可以用来获取哈希表中字段的数量,例如,如图3所以,通过HLEN命令可以获取到该哈希表user_continuous_sign:A中字段的数量为5,即确定该签到数据不为初次签到数据。

步骤102:确定该第一签到数据对应签到用户的累计签到次数。

具体地,步骤102具体可以包括:根据该第一签到数据中的用户标识,通过HLEN命令获取redis缓存数据库中该用户标识对应的哈希表中字段的数量,并将该数量确定为第一签到数据对应签到用户的累计签到次数。

具体地,HLEN命令可以用来获取哈希表中字段的数量,例如,如图3所以,通过HLEN命令可以获取到该哈希表user_continuous_sign:A中字段的数量为5,即确定用户A的累计签到次数为5次。

步骤103:根据预设签到规则和累计签到次数通过键-值存储数据库的生存时间TTL命令设置第一签到数据对应签到用户的全部签到数据的生存时间。

在一些实施例中,步骤103可以包括:若累计签到次数小于预设次数,则通过键-值存储数据库的生存时间TTL命令将与预设签到规则对应的第一预设时间设置为第一签到数据对应签到用户的全部签到数据的生存时间。

其中,预设签到规则主要可以存在两种任务形式,第一种为连续签到任务,即连续签到目标天数可获得奖励的任务,例如,连续十天签到获得奖励的任务;第二种为不连续、累计签到任务,即在一定的时间段内累计签到目标天数可获得奖励的任务,例如,在三十天内累计签到十天可获得奖励的任务。值得注意的是,签到任务的执行时间一般是以自然日来规定的,以连续签到任务为例,用户在某日的任意时刻进行签到,则其必须要在签到次日的0点至24点前进行再次签到。

具体地,预设次数以及第一预设时间均取决于预设签到规则。譬如,若将签到任务设置为连续十天签到可获得奖励,则预设次数为十次,第一预设时间可以为此刻至签到次日的23时59分59秒。

在一些实施例中,步骤103主要可以包括:若累计签到次数大于预设次数,则通过键-值存储数据库的生存时间TTL命令将与预设签到规则对应的第二预设时间设置为第一签到数据对应签到用户的全部签到数据的生存时间。

同上,该预设次数以及第二预设时间均取决于预设签到规则。该第二预设时间可以由预设签到规则中领取奖励的时限来决定,例如,若设定必须在签到任务完成后的十天内领取奖励,则第二预设时间应该为任务完成此刻开始至第十个自然日的结束时间。

在一些实施例中,步骤103具体可以包括:根据预设签到规则和累计签到次数通过redis缓存数据库的TTL命令设置该第一签到数据所在哈希表的生存时间。

具体地,每个签到用户的签到数据对应一个生存时间,例如,以redis缓存数据库、每个签到用户的签到数据为哈希表的形式为例,为每个签到用户对应签到数据设置一个生存时间,即将每个签到用户对应签到数据的生存时间同样记录在redis缓存数据库中,且同样为哈希表的形式,其中,key字段可以为每个签到用户的签到数据所在的哈希表的名称,value字段可以为每个签到用户对应签到数据的生存时间,key与value具有一一对应的关系。

步骤104:若第一签到数据对应签到用户在生存时间内的指定时间段内未产生指定操作数据,则删除第一签到数据对应签到用户的全部签到数据。

其中指定操作数据可以包括第二签到数据,指定时间段可以包括第一时间段,步骤104主要可以包括:若第一签到数据对应签到用户在生存时间内的第一时间段内未产生第二签到数据,则删除第一签到数据对应签到用户的全部签到数据。

其中,第一时间段取决于上述预设签到规则,例如,若是连续签到任务,则第一时间段则应该为次日0点至24点,若是累计签到任务,则第一时间段应该取决于累计签到任务的时限。

容易理解的是,根据预设签到规则,例如,连续签到十天的签到任务,第一签到数据对应签到用户应当在当前签到时刻的次日0点至24点前进行下一次签到,若未在当前签到时刻的次日0点至24点前签到,则认为任务失败,因此,应当删除全部签到数据以释放存储空间。

在本实施例中,该处理方法还可以包括:若第一签到数据对应签到用户在生存时间内的第一时间段内产生第二签到数据,则将第二签到数据保存至键-至存储数据库中,并返回执行S102的步骤。

容易理解的是,根据预设签到规则,例如,连续签到十天的签到任务,若第一签到数据对应签到用户在当前签到时刻的次日0点至24点前签到,则任务可以继续,直至签到用户任务失败或任务完成。

具体地,为了引导用户进行签到任务,通常设置有奖励。因此,可以理解的是,上述指定操作还可以包括奖励领取数据,指定时间段包括第二时间段,步骤S104主要可以包括:若第一签到数据对应签到用户在生存时间内的第二时间段内未产生奖励领取数据,则删除第一签到数据对应签到用户的全部签到数据。

容易理解的是,用户在完成签到后,可以领取奖励,但是,奖励也有一个有效期,用户若在有效期内未领取奖励,则奖励失效,此时,可以删除用户的全部签到数据,以释放存储空间。具体地,指定时间段取决于预设签到规则。譬如,若预设签到规则为:奖励可以在签到完成的次日至第十个自然日结束前领取,则该第二时间段可以为次日0点至第十个自然日24点之前。

在一些实施例中,该处理方法还可以包括:若第一签到数据对应签到用户在生存时间内的第二时间段内产生奖励领取数据,则删除第一签到数据对应签到用户的全部签到数据。

容易理解的是,当用户领取奖励后,可以认为用户完成本次签到任务,则应该清楚用户的全部签到数据,以释放存储空间。

具体地,请参阅图5,图5为本申请实施例提供的签到数据的处理方法的第二应用场景示意图,如图所示,任务栏11中的任务进度为30/30,即任务已经完成,则任务栏中显示领取按钮112,当用户点击领取按钮112领取奖励时,产生奖励领取数据,则可以删除用户的全部签到数据。

在一些实施例中,步骤104具体可以包括:若第一签到数据对应签到用户在生存时间内的指定时间段内未产生指定操作数据,则将第一签到数据所在哈希表删除。

具体地,若用户未在生存时间内的指定时间段内进行签到或领取奖励,则视为任务未完成,应该将该用户进行签到的历史数据删除,以释放存储空间。譬如,假设签到任务为连续十天签到可获得奖励,且用户在今日的任意时刻进行了签到,则应该将生存时间设置为签到时刻至次日的24点前,指定时间段应该设置为次日0点至次日24点前,若用户未在次日0点至次日24点前进行签到,则视为任务未完成,删除用户的全部签到数据,即将签到数据所在哈希表删除,若在删除签到数据后用户再次进行签到,则重复初次签到的步骤,即新建哈希表以保存签到数据。

上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。

本申请实施例提供的签到数据的处理方法,通过获取第一签到数据,并将第一签到数据保存至键-值存储数据库中;确定第一签到数据对应签到用户的累计签到次数;根据预设签到规则和累计签到次数通过键-值存储数据库的TTL命令设置第一签到数据对应签到用户的全部签到数据的生存时间,若第一签到数据对应签到用户在生存时间内的指定时间段内未产生指定操作,则删除第一签到数据对应签到用户的全部签到数据,无需增加额外的定时任务去清理数据,从而及时清除无效的签到数据,释放存储空间。

请参阅图6,图6为本申请实施例提供的签到数据的处理方法的另一流程示意图,该方法主要可以包括步骤201至步骤206,说明如下:

步骤201:获取第一签到数据,将第一签到数据保存至redis缓存数据中该第一签到数据对应签到用户对应的哈希表中。

步骤201的具体实施可参见步骤101的实施例,在此不再赘述。

步骤202:根据第一签到数据中的用户标识,通过HLEN命令获取redis缓存数据库中该用户标识对应的哈希表中的字段数量,并将该数量确定为第一签到数据对应签到用户的累计签到次数。

步骤202的具体实施例可参见步骤102的实施例,在此不再赘述。

步骤203:若累计签到次数小于预设次数,则通过redis缓存数据库的TTL命令将与预设签到规则对应的第一预设时间设置为第一签到数据所在哈希表的生存时间。

具体地,以不连续、累计签到任务为例,譬如,若设定签到任务为30天内累计签到10次即可领取奖励,则预设次数为10次,第一预设时间为签到时刻至第30个自然日的结束时间之前。

步骤204:若累计签到次数不小于预设次数,则通过redis缓存数据库的TTL命令将与预设签到规则对应的第二预设时间设置为第一签到数据所在哈希表的生存时间。

具体地,若第二预设时间可以由预设签到规则中领取奖励的时限来决定,例如,若设定必须在签到任务完成后的十天内领取奖励,则第二预设时间应该为任务完成时刻至第十个自然日24点之前。

步骤205:若第一签到数据对应签到用户在生存时间内的第一时间段内未产生第二签到数据,则删除第一签到数据所在哈希表。

具体地,第一时间段取决于上述预设签到规则,例如,若是连续签到任务,则第一时间段则应该为次日0点至24点,若是累计签到任务,则第一时间段应该取决于累计签到任务的时限。容易理解的是,根据预设签到规则,例如,连续签到十天的签到任务,第一签到数据对应签到用户应当在当前签到时刻的次日0点至24点前进行下一次签到,若未在当前签到时刻的次日0点至24点前签到,则认为任务失败,因此,应当全部签到数据,即第一签到数据所在哈希表,以释放存储空间。

步骤206:若第一签到数据对应签到用户在生存时间内的第二时间段内未产生奖励领取数据,则删除第一签到数据所在哈希表。

容易理解的是,用户在完成签到后,可以领取奖励,但是,奖励也有一个有效期,用户若在有效期内未领取奖励,则奖励失效,此时,可以删除用户的全部签到数据,以释放存储空间。具体地,第二时间段取决于预设签到规则。譬如,若预设签到规则为:奖励可以在签到完成的次日至第十个自然日结束前领取,则该第二时间段可以为次日0点至第十个自然日24点之前。

上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。

本申请实施例提供的签到数据的处理方法,应用于服务器,首先,获取第一签到数据,将第一签到数据保存至redis缓存数据中该签到数据对应签到用户对应的哈希表中,之后,根据第一签到数据中的用户标识,通过HLEN命令获取redis缓存数据库中该用户标识对应的哈希表中的字段数量,并将该数量确定为第一签到数据对应签到用户的累计签到次数,避免了在查询累计签到次数时需要大量计算,若累计签到次数小于预设次数,则通过redis缓存数据库的TTL命令将与预设签到规则对应的第一预设时间设置为第一签到数据所在哈希表的生存时间,若第一签到数据对应签到用户在生存时间内的第一时间段内未产生第二签到数据,则删除第一签到数据所在哈希表,若累计签到次数不小于预设次数,则通过redis缓存数据库的TTL命令将与预设签到规则对应的第二预设时间设置为签到数据所在哈希表的生存时间,若第一签到数据对应签到用户在生存时间内的第二时间段内未产生奖励领取数据,则删除第一签到数据所在哈希表,便于清楚无效数据,避免数据库中存储大量签到数据占用存储空间的情况发生。

为便于更好的实施本申请实施例的签到数据的处理方法,本申请实施例还提供一种签到数据的处理装置。请参阅图7,图7为本申请实施例提供的签到数据的处理装置的结构示意图。该签到数据的处理装置20可以包括获取模块21,确定模块22、设置模块23以及删除模块24。

其中,获取模块21,用于获取第一签到数据,并将第一签到数据保存至键-值存储数据库中。

确定模块22,用于确定第一签到数据对应签到用户的累计签到次数;

设置模块23,用于根据预设签到规则和累计签到次数通过键-值存储数据库的TTL命令设置第一签到数据对应签到用户的全部签到数据的生存时间。

删除模块24,用于若第一签到数据对应签到用户在生存时间内的指定时间段内未产生指定操作数据,则删除第一签到数据对应签到用户的全部签到数据。

在一些实施例中,获取模块21具体可以用于:从消息订阅系统中获取第一签到数据。

具体地,键-值存储数据库包括redis缓存数据库,获取模块21具体可以用于:将第一签到数据保存至redis缓存数据库中第一签到数据对应签到用户对应的哈希表中。

进一步地,第一签到数据包括用户标识,获取模块21具体可以用于:根据用户标识确定第一签到数据是否为初次签到数据;若第一签到数据为初次签到数据,则根据用户标识新建哈希表,并将第一签到数据保存至新建的哈希表中;若第一签到数据不为初次签到数据,则根据用户标识将第一签到数据保存至对应已存在的哈希表中。

进一步地,redis缓存数据库的全部哈希表的名称与用户标识一一对应,获取模块21具体可以用于:判断redis缓存数据库的全部哈希表中是否存在与用户标识对应的哈希表;若redis缓存数据库的全部哈希表中存在与用户标识对应的哈希表,则确定第一签到数据不为初次签到数据;若redis缓存数据库的全部哈希表中不存在与用户标识对应的哈希表,则确定第一签到数据为初次签到数据。

具体地,确定模块22具体可以用于:根据第一签到数据中的用户标识,通过HLEN命令获取redis缓存数据库中用户标识对应的哈希表中字段的数量,并将数量确定为第一签到数据对应签到用户的累计签到次数。

具体地,设置模块23具体可以用于:根据预设签到规则和累计签到次数通过redis缓存数据库的TTL命令设置第一签到数据所在哈希表的生存时间。

在一些实施例中,设置模块23具体可以用于:若累计签到次数小于预设次数,则通过键-值存储数据库的生存时间TTL命令将与预设签到规则对应的第一预设时间设置为第一签到数据对应签到用户的全部签到数据的生存时间。

在本实施例中,指定操作数据包括第二签到数据,指定时间段包括第一时间段,删除模块24主要可以用于:若第一签到数据对应签到用户在生存时间内的第一时间段内未产生第二签到数据,则删除第一签到数据对应签到用户的全部签到数据。

此外,该签到数据的处理装置20还包括保存模块,用于若第一签到数据对应签到用户在生存时间内的第一时间段内产生第二签到数据,则将第二签到数据保存至键-至存储数据库中,并返回执行确定模块22的功能。

在一些实施例中,设置模块23主要可以用于:若累计签到次数大于预设次数,则通过键-值存储数据库的生存时间TTL命令将与预设签到规则对应的第二预设时间设置为第一签到数据对应签到用户的全部签到数据的生存时间。

在本实施例中,指定操作数据包括奖励领取数据,指定时间段包括第二时间段,删除模块24主要可以用于:若第一签到数据对应签到用户在生存时间内的第二时间段内未产生奖励领取数据,则删除第一签到数据对应签到用户的全部签到数据。

进一步地,删除模块24还可以用于:若第一签到数据对应签到用户在生存时间内的第二时间段内产生奖励领取数据,则删除第一签到数据对应签到用户的全部签到数据。

进一步地,删除模块具体可以用于:若第一签到数据对应签到用户在生存时间内的指定时间段内未产生指定操作数据,则将第一签到数据所在哈希表删除。

上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。

本申请实施例提供的签到数据的处理装置20,通过获取模块21获取第一签到数据,并将第一签到数据保存至键-值存储数据库中,然后,确定模块22确定第一签到数据对应签到用户的累计签到次数,之后,设置模块23根据预设签到规则和累计签到次数通过键-值存储数据库的TTL命令设置第一签到数据对应签到用户的全部签到数据的生存时间,若第一签到数据对应签到用户在生存时间内的指定时间段内未产生指定操作数据,则删除模块24删除第一签到数据对应签到用户的全部签到数据,无需增加额外的定时任务去清理数据,从而及时清除无效的签到数据,释放存储空间。

相应的,本申请实施例还提供一种计算机设备,该计算机设备可以为终端或者服务器,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,Personal Computer)、个人数字助理(Personal Digital Assistant,PDA)等终端设备。如图8所示,图8为本申请实施例提供的计算机设备的结构示意图。该计算机设备400包括有一个或者一个以上处理核心的处理器401、有一个或一个以上计算机可读存储介质的存储器402及存储在存储器402上并可在处理器上运行的计算机程序。其中,处理器401与存储器402电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

处理器401是计算机设备400的控制中心,利用各种接口和线路连接整个计算机设备400的各个部分,通过运行或加载存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行计算机设备400的各种功能和处理数据,从而对计算机设备400进行整体监控。

在本申请实施例中,计算机设备400中的处理器401会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能:

获取第一签到数据,并将第一签到数据保存至键-值存储数据库中;确定第一签到数据对应签到用户的累计签到次数;根据预设签到规则和累计签到次数通过键-值存储数据库的TTL命令设置第一签到数据对应签到用户的全部签到数据的生存时间;若第一签到数据对应签到用户在生存时间内的指定时间段内未产生指定操作,则删除第一签到数据对应签到用户的全部签到数据。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

可选的,如图8所示,计算机设备400还包括:触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407。其中,处理器401分别与触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407电性连接。本领域技术人员可以理解,图8中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

触控显示屏403可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏403可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器401,并能接收处理器401发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器401以确定触摸事件的类型,随后处理器401根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏403而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏403也可以作为输入单元406的一部分实现输入功能。

射频电路404可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。

音频电路405可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路405可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路405接收后转换为音频数据,再将音频数据输出处理器401处理后,经射频电路404以发送给比如另一计算机设备,或者将音频数据输出至存储器402以便进一步处理。音频电路405还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。

输入单元406可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。

电源407用于给计算机设备400的各个部件供电。可选的,电源407可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源407还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

尽管图8中未示出,计算机设备400还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

由上可知,本实施例提供的计算机设备,通过获取第一签到数据,并将第一签到数据保存至键-值存储数据库中;确定第一签到数据对应签到用户的累计签到次数;根据预设签到规则和累计签到次数通过键-值存储数据库的TTL命令设置第一签到数据对应签到用户的全部签到数据的生存时间;若第一签到数据对应签到用户在生存时间内的指定时间段内未产生指定操作,则删除第一签到数据对应签到用户的全部签到数据,无需增加额外的定时任务去清理数据,从而及时清除无效的签到数据,释放存储空间。

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。

为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种签到数据的处理方法中的步骤。例如,该计算机程序可以执行如下步骤:

获取第一签到数据,并将第一签到数据保存至键-值存储数据库中;确定第一签到数据对应签到用户的累计签到次数;根据预设签到规则和累计签到次数通过键-值存储数据库的TTL命令设置第一签到数据对应签到用户的全部签到数据的生存时间;若第一签到数据对应签到用户在生存时间内的指定时间段内未产生指定操作,则删除第一签到数据对应签到用户的全部签到数据。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。

由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种签到数据的处理方法中的步骤,因此,可以实现本申请实施例所提供的任一种签到数据的处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。

以上对本申请实施例所提供的一种签到数据的处理方法、装置、存储介质及计算机设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 签到数据的处理方法、装置、存储介质及计算机设备
  • 数据处理方法、装置、计算机设备和计算机可读存储介质
技术分类

06120112859747