CN106484714A - 一种行为记录的存储方法和设备 - Google Patents
一种行为记录的存储方法和设备 Download PDFInfo
- Publication number
- CN106484714A CN106484714A CN201510536874.3A CN201510536874A CN106484714A CN 106484714 A CN106484714 A CN 106484714A CN 201510536874 A CN201510536874 A CN 201510536874A CN 106484714 A CN106484714 A CN 106484714A
- Authority
- CN
- China
- Prior art keywords
- behavior record
- user
- memory element
- server
- behavior
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- 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/24564—Applying rules; Deductive queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种行为记录的存储方法,服务器包括多个存储单元,所述方法包括:所述服务器获取用户的行为记录和用户ID;所述服务器根据所述用户ID确定对应的存储单元;所述服务器将所述行为记录存储在对应的存储单元中,以使所述服务器在接收到查询请求时在对应的存储单元中进行查询。本申请在进行行为记录查询时缩短了整个计算到输出结果的耗时,还可以满足多种查询方式。
Description
技术领域
本申请涉及网络技术领域,特别是涉及一种行为记录的存储方法和设备。
背景技术
滑动规则在引擎中支持类SQL(Structured Query Language,结构化查询语言)语句,滑动规则是商家设定的查询规则,用于查询哪些用户是自己想要的用户,或哪些用户是潜在用户,滑动规则对指定的行为记录有一定的要求,并且要求行为记录还要满足设定的时间窗口的限制,例如:距离当前时间前30分钟,交易笔数大于2的用户有哪些。
现有根据滑动规则确定用户的方案使用流计算系统实现的,具体的,利用用户的消息更新来驱动对滑动规则的计算,一条滑动规则对应一个进程,计算的中间结果写入到持久化存储中,最终的结果通过用户自定义的输出接口输出到指定终端。
在实现本申请的过程中,申请人发现现有技术至少存在以下问题:
由于用户的滑动规则是存储在不同的设备上的,在进行行为记录查询时,多个的行为记录是分开进行查询的,在查询完所有滑动规则对应的用户后再进行统计并发送给用户,整个计算到输出结果耗时比较高,通常在秒级和分钟级,不能满足时间要求较高的业务,同时,上述方法提供的查询方式只能满足G2U(Group to Users,一种查询方式,通过滑动规则查询满足此滑动规则的所有用户)的查询方式,查询方式比较简单。
发明内容
本申请的目的在于提供一种行为记录的存储方法和设备,通过将用户的行为记录存储在服务器中的不同存储单元中,在进行行为记录查询时,多个行为记录可以同时进行查询,使查找时间限定在毫秒之内,缩短了整个计算到输出结果的耗时,同时,本申请中提出的存储方法不仅能够满足G2U的查询方式,还可以满足U2G的查询方式。
本申请的技术方案如下:
一种行为记录的存储方法,服务器包括多个存储单元,所述方法包括:
所述服务器获取用户的行为记录和用户ID;
所述服务器根据所述用户ID确定对应的存储单元;
所述服务器将所述行为记录存储在对应的存储单元中,以使所述服务器在接收到查询请求时在对应的存储单元中进行查询。
所述服务器将所述行为记录存储在对应的存储单元中,具体为:
所述服务器根据所述行为记录中的所述用户的行为信息确定对应的存储单元中所述行为记录对应行为记录列表;
所述服务器根据所述用户ID确定所述行为记录列表中所述用户对应的行为记录队列;
所述服务器将所述行为记录存储在所述行为记录队列中。
在所述服务器将所述行为记录存储在对应的存储单元中之前,所述方法包括:
所述服务器根据所述行为记录判断所述存储单元中是否存在所述行为记录对应的行为记录列表;
如果不存在,所述服务器为所述行为记录建立对应的行为记录列表;
所述服务器根据所述行为记录在所述行为记录列表中为所述用户建立对应的行为记录队列。
当所述服务器判断一个用户满足的滑动规则时,所述方法包括:
所述服务器确定所述用户ID所在的存储单元;
所述服务器确定所述存储单元中所述用户ID对应的行为记录列表;
所述服务器根据所述行为记录列表确定所述用户ID满足的滑动规则,以使所述服务器将所述用户ID推荐给滑动规则对应的发布用户。
当所述服务器判断满足一个滑动规则的用户时,所述方法还包括:
所述服务器确定所述多个存储单元中满足所述滑动规则中的用户行为的行为记录列表;
所述服务器确定所述行为记录列表中都存在的用户对应的行为记录队列;
所述服务器根据所述行为记录队列确定满足所述滑动规则中设定的时间段的用户ID;
所述服务器将确定的用户ID推荐给所述滑动规则的发布用户。
在所述服务器根据所述用户ID确定对应的存储单元之后,所述方法还包括:
所述服务器判断所述存储单元中的用户分组队列中是否存在所述用户ID;
如果不存在,所述服务器将所述用户ID存储在对应的存储单元中的用户分组队列中,以使所述服务器在进行滑动规则进行查询时确定用户对应的存储单元;
所述用户分组队列是在所述服务器进行行为记录查询时用户分组列表中任一没有被使用的用户分组队列。
一种服务器,服务器包括多个存储单元,所述服务器包括:
获取模块,用于获取用户的行为记录和用户ID;
第一确定模块,用于根据所述用户ID确定对应的存储单元;
存储模块,用于将所述行为记录存储在对应的存储单元中,以使所述服务器在接收到查询请求时在对应的存储单元中进行查询。
所述存储模块具体用于:
根据所述行为记录中的所述用户的行为信息确定对应的存储单元中所述行为记录对应行为记录列表;
根据所述用户ID确定所述行为记录列表中所述用户对应的行为记录队列;
将所述行为记录存储在所述行为记录队列中。
所述服务器还包括:
第一判断模块,在所述存储模块将所述行为记录存储在对应的存储单元中之前,用于根据所述行为记录判断所述存储单元中是否存在所述行为记录对应的行为记录列表;
第一建立模块,如果存储单元中不存在所述行为记录对应的行为记录列表,用于为所述行为记录建立对应的行为记录列表;
第二建立模块,用于根据所述行为记录在所述行为记录列表中为所述用户建立对应的行为记录队列。
所述第一确定模块还具体用于:
当所述服务器判断一个用户满足的滑动规则时,确定所述用户ID所在的存储单元;
所述服务器还包括:
第二确定模块,用于确定所述存储单元中所述用户ID对应的行为记录列表;
第三确定模块,用于根据所述行为记录列表确定所述用户ID满足的滑动规则,以使所述服务器将所述用户ID推荐给滑动规则对应的发布用户。
所述服务器还包括:
第三确定模块,当所述服务器判断满足一个滑动规则的用户时,用于确定所述多个存储单元中满足所述滑动规则中的用户行为的行为记录列表;
第四确定模块,用于确定所述行为记录列表中都存在的用户对应的行为记录队列;
第五确定模块,用于根据所述行为记录队列确定满足所述滑动规则中设定的时间段的用户ID;
发送模块,用于将确定的用户ID推荐给所述滑动规则的发布用户。
所述服务器还包括:
第二判断模块,在所述第一确定模块根据所述用户ID确定对应的存储单元之后,用于判断所述存储单元中的用户分组队列中是否存在所述用户ID;
所述存储模块,如果所述存储单元中的用户分组队列中不存在所述用户ID,还用于将所述用户ID存储在对应的存储单元中的用户分组队列中,以使所述服务器在进行滑动规则进行查询时确定用户对应的存储单元;
所述用户分组队列是在所述服务器进行行为记录查询时用户分组列表中任一没有被使用的用户分组队列。
本申请通过将用户的行为记录存储在服务器中的不同存储单元中,在进行行为记录查询时,多个行为记录可以同时进行查询,使查找时间限定在毫秒之内,缩短了整个计算到输出结果的耗时,同时,本申请中提出的存储方法不仅能够满足G2U的查询方式,还可以满足U2G的查询方式。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对本申请或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中的一种行为记录的存储方法流程图;
图2为本申请实施例中的一种行为记录列表的存储结构示意图;
图3为本申请实施例中的一种用户分组队列的存储结构示意图;
图4为本申请实施例中的一种服务器的结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的其他实施例,都属于本申请保护的范围。
一种行为记录的存储方法,如图1所示,所述服务器包括多个存储单元,所述方法包括以下步骤:
步骤101,所述服务器获取用户的行为记录和用户ID(Identity,身份标识号码)。
其中,所述存储单元中可以包括多个镜像存储子单元,每个镜像存储子单元中存储有相同的行为记录,且具有相同的服务功能。
具体的,为了提高服务器的可靠性,可以将服务器中的存储单元划分为多个镜像存储子单元,每一个存储单元都有镜像存储子单元来提供服务,行为记录在进行存储时,将所述行为记录存储在一个存储子单元中的所有镜像存储子单元中,即同一个存储子单元中的多个镜像存储子单元具有相同的存储数据,可以提供相同的服务,因此如果一个存储子单元中的一个镜像存储子单元出现问题,所述存储子单元中的其他镜像子单元可以提供相同的服务,同时,所述多个镜像子单元可以同时处理多个任务,还可以为一个任务同时提供服务。
所述行为记录中至少包括:所述用户的行为信息、所述用户的行为时间。行为记录中记录了用户在某个时间点或时间段做了什么事情,以某用户在凌晨1点花了100元买了一罐奶粉为例,该事件的行为信息可以包括:产生了一次购物(用户的购物次数增加了一次)、买了一罐奶粉、花费了100元,该事件产生的行为记录可以为:该用户在凌晨1点花费了100元、该用户在凌晨1点进行了一次购物和该用户在凌晨1点购买了一罐奶粉,当用户在进行某个事件时产生了对应的行为记录时,所述服务器会根据预先设定的需要统计的行为内容对产生的行为记录生成对应的行为记录信息,当用户根据一个行为记录产生了一个行为记录信息时就会对所述行为记录进行存储,当然如果设定需要统计消费次数,该事件对应的行为信息还包括:产生了一次消费(用户的消费次数增加了一次),对应的行为记录为:该用户在凌晨1点进行了一次消费,获取的行为信息可以根据预先设定的规则进行获取,即需要获取哪些行为信息对应的行为记录。
步骤102,所述服务器根据所述用户ID确定对应的存储单元。
具体的,所述服务器可以根据预先设定的规则确定所述用户ID对应的存储单元,例如:将用户ID尾号为1的存储在1号存储单元中。
由于用户ID数目一般非常庞大,为了支撑如此庞大的用户数以及用户对应的行为记录,将所述服务器划分为多个存储单元,根据用户ID来分别存储不同用户及其用户对应的行为记录,这样可以在所述服务器提供查询服务时有效的保证系统的负载,从而使得查询请求在毫秒级响应得到保证。在进行查询请求时,每个存储单元只处理自身所负责的用户的行为记录的计算,如果滑动规则没有关联到某个存储单元,那么所述存储单元不需要提供服务。
步骤103,所述服务器将所述行为记录存储在对应的存储单元中,以使所述服务器在接收到查询请求时在对应的存储单元中进行查询。
由于不同用户对应的行为记录存储在所述服务器中的不同存储单元中,一个存储单元可以根据其存储的用于对应的行为记录判断其存储的用户满足哪些滑动规则,即一个存储单元只针对一部分用户来进行滑动规则的计算,那么多个存储单元可以快速的完成针对所有用户的滑动规则的计算,并且,由于每个存储单元中可以划分成多个镜像存储子单元,且每个镜像存储子单元都可以提供完整的服务,因此每个镜像子单元可以对滑动规则的计算任务进行负载分担,快速完成滑动规则的计算,例如:在进行G2U的查询方式计算滑动规则时,所述服务器中的存储单元分别计算自身存储的用户对应的行为记录,多个存储单元来共同完成整个用户针对此滑动规则的计算,在进行U2G(User to Groups,一种查询方式,通过给定用户ID查询所述用户ID满足的所有滑动规则)的查询方式计算滑动规则时,存储该用户的存储单元的每个镜像存储子单元同时对该用户对应的行为记录进行计算,可以快速确定出该用户满足哪些滑动规则,由于每个镜像存储子单元都具有完成的功能,因此还可以保证系统的稳定性。
所述服务器将所述行为记录存储在对应的存储单元中,具体为:
所述服务器根据所述行为记录中的所述用户的行为信息确定对应的存储单元中所述行为记录对应的行为记录列表;
所述服务器根据所述用户ID确定所述行为记录列表中所述用户对应的行为记录队列;
所述服务器将所述行为记录存储在所述行为记录队列中。
具体的,所述服务器对不同行为信息对应行为记录存储在不同的行为记录列表中,以某用户在凌晨1点花了100元买了一罐奶粉产生的3个行为记录为例,这3中行为记录对应的行为信息分别为:产生了一次购物,购买了一罐奶粉和花费了100元,这3个行为信息是同一个用户在一个事件中产生的,由于服务器对行为记录是按行为信息进行存储的,因此将这3个行为信息对应的行为记录分别存储在3个行为记录列表中,这3个行为记录列表分别为:购物行为记录列表、花费金额行为记录列表和买奶粉行为记录列表,当其他用户也在某时间产生了相应的行为信息,所述服务器会将行为信息对应的行为记录存储在对应的行为记录列表中,例如:某个用户在下午1点花费了80元买了一罐奶粉,所述服务器会将该用户产生的3个行为记录存储在上述3个行为记录列表中,如果某个用户在下午1点花费了80买了一件衣服,那么所述服务器会将该用户产生的一次消费和购物对应的行为记录分别存储在购物行为记录列表、花费金额行为记录列表,而该用户产生的行为信息:买衣服,存储在买衣服行为记录列表中,即所述服务器的存储单元对应的所有用户产生的同一行为信息对应的行为记录都会存在同一个行为记录列表中。
行为信息列表中的对行为记录的存储方式具体如图2所示,以买奶粉行为记录列表为例,图2中存储的是所述服务器某个存储单元对应的所有用户产生买奶粉的行为记录,所述行为列表中包括多个行为记录队列,每个行为记录队列记录的是一个用户在不同时间发生的买奶粉的行为信息,以userid1为例,userid1的行为记录队列中记录的是userid1在不同时间买奶粉的行为信息,userid1的行为记录队列中有3个Node节点,表示userid1在3个时间点发生了买奶粉的行为记录,一个Node节点都表示userid1发生一次买奶粉的行为,不同的Node节点对应userid1买奶粉的不同时间,一个队列中的Node节点是根据一定的时间顺序进行排列的。根据所述行为记录列表可以确定发生哪些用户发生过买奶粉的行为记录,还可以根据用户的所述行为记录队列确定用户每次发生买奶粉的行为记录的时间,同时,还可以根据所述行为记录队列中Node节点的个数确定不同用户发生买奶粉行为的次数。
在用户产生了一个行为记录时,所述服务器需要将所述行为记录存储在对应的存储单元中,所述存储单元需要确定所述行为记录对应的行为记录列表和产生所述行为记录的用于对应的行为记录队列,并进行存储,例如:如果所述用户产生的行为记录为买奶粉,那么所述存储单元需要将所述行为记录存储在买奶粉行为记录列表中,在确定出行为记录对应的行为记录列表后,还需要确定出产生所述行为记录的用户对应的行为记录队列,如图2所示,如果所述行为记录是userid1产生的,那么需要在userid1的行为记录队列中建立一个Node节点,该Node节点用户存储所述行为记录。
其中,行为记录队列中不同的Node节点是按行为记录的产生的时间进行排序的,这样在根据滑动规则进行计算时可以快速确定出满足所述滑动规则对应的时间。
在所述服务器将所述行为记录存储在对应的存储单元中之前,所述方法包括:
所述服务器根据所述行为记录判断所述存储单元中是否存在所述行为记录对应的行为记录列表;
如果不存在,所述服务器为所述行为记录建立对应的行为记录列表;
所述服务器根据所述行为记录在所述行为记录列表中为所述用户建立对应的行为记录队列。
在确定出行为记录对应的用户所在的存储单元后,还要确定出所述存储单元中是否存在所述行为记录列表,如果所述行为记录中的行为信息是一种新的行为信息,那么所述存储单元中之前不可能存在所述行为记录对应的行为记录列表,因此,需要为所述行为记录对应的行为建立行为记录列表,并将所述行为记录中建立所述行为记录对应用户的行为记录队列,然后将所述行为记录存储在所述行为记录队列中。
在所述服务器根据所述用户ID确定对应的存储单元之后,所述方法还包括:
所述服务器判断所述存储单元中的用户分组队列中是否存在所述用户ID;
如果不存在,所述服务器将所述用户ID存储在对应的存储单元中的用户分组队列中,以使所述服务器在根据滑动规则进行查询时确定用户对应的存储单元;
所述用户分组队列是在所述服务器进行行为记录查询时用户分组列表中任一没有被使用的用户分组队列。
所述服务器的不同存储单元获取不同用户产生行为记录,并进行存储,所述存储单元中存储有其对应的用户,如果用户的行为记录存储在了所述存储单元中,那么表示所述用户属于所述存储单元,需要对用户的ID进行存储,以便所述存储设备快速确定出其对应哪些用户,具体的,所述用户ID存储在如图3所示的用户分组队列中,每个存储单元中有若干个用户分组队列,用于存储所述存储单元对应的用户ID,在存储单元接收到其对应的用户ID后,先要判断所述存储单元中是否已经存在所述用户ID,如果存在,表明所述用户ID已经在所述存储单元中建立过对应的行为记录队列,如果不存在,表明所述用户ID是第一次在其对应的存储单元中建立行为记录队列,需要将所述用户ID存储在所述存储单元中,由于服务器中的存储单元随时都可能处于服务状态,在存储单元处于服务状态时需要查询其存储的用户ID,以便查询所述用户ID对应的行为记录列表和行为记录队列,如果此时在所述存储单元中添加用户ID,会对所述存储单元的稳定性造成影响,以及对所述存储单元的处理速度造成影响,将存储单元对应的用户ID分成若干组,在添加用户ID时,在没有被使用的用户分组队列中进行添加,这样就不会对所述存储单元的稳定性和处理速度造成影响,例如:如果当前存储单元正在调用userid1,即所述存储单元正在使用用户分组队列block1,所述存储单元在用户分组队列中添加一个新的用户ID时,可以在除block1之外的其他没有使用的队列中添加,如:block2。
行为记录和用户ID的存储结构是基于内存进行的,因此当服务器发生宕机或者程序发生crash(程序异常终止)之后是需要进行数据恢复的,所述服务器根据预先设定的时间定期dump(备份文件系统)内存中存储的行为记录和用户ID到服务器中发生宕机或者程序发生crash时不会丢失的存储空间内,或其他外部存储器中,同时还要记录消息更新的当前offset(一种函数,用于以指定的引用为参照系,通过给定偏移量得到新的引用),当服务器发生宕机或者程序发生crash时,服务器可以获取其存储空间或外部存储器中的数据进行数据恢复,同时,消息消费从记录的offset继续消费,从而避免服务器发生宕机或者程序发生crash时引起的数据恢复的问题。
由于服务器中的数据的时间长度是有限的,一般是数据接入的时候就通过数据库指定好的,服务器需要对超过期限的数据进行GC(一种回收机制)处理,这样一方面有效的节省了内存,使得服务器中的存储单元中能存储更多的数据,另一方面,及时的把过期数据进行GC掉,可以加速规则计算时的速度。其中GC方案有两种,一种为:每次进行数据备份的时候,进行一次全量GC;另外一种为:使用GC管理器,在服务器低负载时触发GC任务,这样能有效的减少GC对在线查询的干扰。
当所述服务器判断一个用户满足的滑动规则时,所述方法包括:
所述服务器确定所述用户ID所在的存储单元;
所述服务器确定所述存储单元中所述用户ID对应的行为记录列表;
所述服务器根据所述行为记录列表确定所述用户ID满足的滑动规则,以使所述服务器将所述用户ID推荐给滑动规则对应的发布用户。
具体的,服务器在进行U2G时,即所述服务器判断一个用户满足哪些滑动规则时,所述服务器需要先定位所述用户ID对应的存储单元,并可以确定出所述存储单元中的一个镜像存储子单元进行此次U2G的查询,在定位所述用户ID对应的存储单元时具体是通过存储单元中的用户分组列表确定存储单元的,在确定出镜像存储子单元后,所述镜像存储子单元中存储有所述用户ID对应的行为记录列表确定所述用户满足哪些行为记录,具体的,所述镜像存储子单元在确定出所述用户ID对应的行为记录后,根据所述行为记录中的时间和行为信息与滑动规则中设定的时间和行为信息进行对比判断所述用户ID对应的行为记录都满足哪些滑动规则,并将返回查询结果。
当所述服务器判断满足一个滑动规则的用户时,所述方法还包括:
所述服务器确定所述多个存储单元中满足所述滑动规则中的用户行为的行为记录列表;
所述服务器确定所述行为记录列表中都存在的用户对应的行为记录队列;
所述服务器根据所述行为记录队列确定满足所述滑动规则中设定的时间段的用户ID;
所述服务器将确定的用户ID推荐给所述滑动规则的发布用户。
具体的,服务器在进行G2U时,即所述服务器判断满足一个滑动规则的用户时,所述服务器接收给定的滑动规则,所述服务器确定每个存储单元中提供查询服务的镜像存储子单元,所述服务器将所述滑动规则发送到确定出的镜像存储子单元中,使用所述镜像存储子单元根据所述滑动规则进行查询服务,在所述镜像存储子单元接收到所述滑动规则时,确定所述镜像存储子单元中存储的满足所述滑动规则中的用户行为的行为记录列表,然后在确定出所述行为记录列表中都存在的用户所对应的行为记录队列(因为用户产生的行为记录存储在不同的行为记录列表中,只有用户产生的行为记录所在的行为记录列表都满足所述滑动规则中的行为信息是所述用户才可能是满足所述滑动规则的用户),此时确定出的用户所对应的行为记录队列是可能满足所述滑动规则的队列,所述镜像存储子单元再根据所述滑动规则中行为对应的时间确定所述滑动规则队列中满足所述滑动规则的用户ID,并返回查询结果。
本申请通过将用户的行为记录存储在服务器中的不同存储单元中,在进行行为记录查询时,多个行为记录可以同时进行查询,使查找时间限定在毫秒之内,缩短了整个计算到输出结果的耗时,同时,本申请中提出的存储方法不仅能够满足G2U的查询方式,还可以满足U2G的查询方式。
基于与上述方法同样的申请构思,本申请还提出了一种服务器,如图4所述,服务器包括多个存储单元,所述服务器包括:
获取模块41,用于获取用户的行为记录和用户ID;
第一确定模块42,用于根据所述用户ID确定对应的存储单元;
存储模块43,用于将所述行为记录存储在对应的存储单元中,以使所述服务器在接收到查询请求时在对应的存储单元中进行查询。
所述存储模块具体用于:
根据所述行为记录中的所述用户的行为信息确定对应的存储单元中所述行为记录对应行为记录列表;
根据所述用户ID确定所述行为记录列表中所述用户对应的行为记录队列;
将所述行为记录存储在所述行为记录队列中。
所述服务器还包括:
第一判断模块,在所述存储模块将所述行为记录存储在对应的存储单元中之前,用于根据所述行为记录判断所述存储单元中是否存在所述行为记录对应的行为记录列表;
第一建立模块,如果存储单元中不存在所述行为记录对应的行为记录列表,用于为所述行为记录建立对应的行为记录列表;
第二建立模块,用于根据所述行为记录在所述行为记录列表中为所述用户建立对应的行为记录队列。
所述第一确定模块还具体用于:
当所述服务器判断一个用户满足的滑动规则时,确定所述用户ID所在的存储单元;
所述服务器还包括:
第二确定模块,用于确定所述存储单元中所述用户ID对应的行为记录列表;
第三确定模块,用于根据所述行为记录列表确定所述用户ID满足的滑动规则,以使所述服务器将所述用户ID推荐给滑动规则对应的发布用户。
所述服务器还包括:
第三确定模块,当所述服务器判断满足一个滑动规则的用户时,用于确定所述多个存储单元中满足所述滑动规则中的用户行为的行为记录列表;
第四确定模块,用于确定所述行为记录列表中都存在的用户对应的行为记录队列;
第五确定模块,用于根据所述行为记录队列确定满足所述滑动规则中设定的时间段的用户ID;
发送模块,用于将确定的用户ID推荐给所述滑动规则的发布用户。
所述服务器还包括:
第二判断模块,在所述第一确定模块根据所述用户ID确定对应的存储单元之后,用于判断所述存储单元中的用户分组队列中是否存在所述用户ID;
所述存储模块,如果所述存储单元中的用户分组队列中不存在所述用户ID,还用于将所述用户ID存储在对应的存储单元中的用户分组队列中,以使所述服务器在进行滑动规则进行查询时确定用户对应的存储单元;
所述用户分组队列是在所述服务器进行行为记录查询时用户分组列表中任一没有被使用的用户分组队列。
本申请通过将用户的行为记录存储在服务器中的不同存储单元中,在进行行为记录查询时,多个行为记录可以同时进行查询,使查找时间限定在毫秒之内,缩短了整个计算到输出结果的耗时,同时,本申请中提出的存储方法不仅能够满足G2U的查询方式,还可以满足U2G的查询方式。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本申请的保护范围。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以集成于一体,也可以分离部署;可以合并为一个模块,也可以进一步拆分成多个子模块。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本申请的几个具体实施例,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (12)
1.一种行为记录的存储方法,其特征在于,服务器包括多个存储单元,所述方法包括:
所述服务器获取用户的行为记录和用户ID;
所述服务器根据所述用户ID确定对应的存储单元;
所述服务器将所述行为记录存储在对应的存储单元中,以使所述服务器在接收到查询请求时在对应的存储单元中进行查询。
2.如权利要求1所述方法,其特征在于,所述服务器将所述行为记录存储在对应的存储单元中,具体为:
所述服务器根据所述行为记录中的所述用户的行为信息确定对应的存储单元中所述行为记录对应行为记录列表;
所述服务器根据所述用户ID确定所述行为记录列表中所述用户对应的行为记录队列;
所述服务器将所述行为记录存储在所述行为记录队列中。
3.如权利要求2所述方法,其特征在于,在所述服务器将所述行为记录存储在对应的存储单元中之前,所述方法包括:
所述服务器根据所述行为记录判断所述存储单元中是否存在所述行为记录对应的行为记录列表;
如果不存在,所述服务器为所述行为记录建立对应的行为记录列表;
所述服务器根据所述行为记录在所述行为记录列表中为所述用户建立对应的行为记录队列。
4.如权利要求2所述方法,其特征在于,当所述服务器判断一个用户满足的滑动规则时,所述方法包括:
所述服务器确定所述用户ID所在的存储单元;
所述服务器确定所述存储单元中所述用户ID对应的行为记录列表;
所述服务器根据所述行为记录列表确定所述用户ID满足的滑动规则,以使所述服务器将所述用户ID推荐给滑动规则对应的发布用户。
5.如权利要求2所述方法,其特征在于,当所述服务器判断满足一个滑动规则的用户时,所述方法还包括:
所述服务器确定所述多个存储单元中满足所述滑动规则中的用户行为的行为记录列表;
所述服务器确定所述行为记录列表中都存在的用户对应的行为记录队列;
所述服务器根据所述行为记录队列确定满足所述滑动规则中设定的时间段的用户ID;
所述服务器将确定的用户ID推荐给所述滑动规则的发布用户。
6.如权利要求1所述方法,其特征在于,在所述服务器根据所述用户ID确定对应的存储单元之后,所述方法还包括:
所述服务器判断所述存储单元中的用户分组队列中是否存在所述用户ID;
如果不存在,所述服务器将所述用户ID存储在对应的存储单元中的用户分组队列中,以使所述服务器在进行滑动规则进行查询时确定用户对应的存储单元;
所述用户分组队列是在所述服务器进行行为记录查询时用户分组列表中任一没有被使用的用户分组队列。
7.一种服务器,其特征在于,服务器包括多个存储单元,所述服务器包括:
获取模块,用于获取用户的行为记录和用户ID;
第一确定模块,用于根据所述用户ID确定对应的存储单元;
存储模块,用于将所述行为记录存储在对应的存储单元中,以使所述服务器在接收到查询请求时在对应的存储单元中进行查询。
8.如权利要求7所述服务器,其特征在于,所述存储模块具体用于:
根据所述行为记录中的所述用户的行为信息确定对应的存储单元中所述行为记录对应行为记录列表;
根据所述用户ID确定所述行为记录列表中所述用户对应的行为记录队列;
将所述行为记录存储在所述行为记录队列中。
9.如权利要求8所述服务器,其特征在于,所述服务器还包括:
第一判断模块,在所述存储模块将所述行为记录存储在对应的存储单元中之前,用于根据所述行为记录判断所述存储单元中是否存在所述行为记录对应的行为记录列表;
第一建立模块,如果存储单元中不存在所述行为记录对应的行为记录列表,用于为所述行为记录建立对应的行为记录列表;
第二建立模块,用于根据所述行为记录在所述行为记录列表中为所述用户建立对应的行为记录队列。
10.如权利要求8所述服务器,其特征在于,所述第一确定模块还具体用于:
当所述服务器判断一个用户满足的滑动规则时,确定所述用户ID所在的存储单元;
所述服务器还包括:
第二确定模块,用于确定所述存储单元中所述用户ID对应的行为记录列表;
第三确定模块,用于根据所述行为记录列表确定所述用户ID满足的滑动规则,以使所述服务器将所述用户ID推荐给滑动规则对应的发布用户。
11.如权利要求8所述服务器,其特征在于,所述服务器还包括:
第三确定模块,当所述服务器判断满足一个滑动规则的用户时,用于确定所述多个存储单元中满足所述滑动规则中的用户行为的行为记录列表;
第四确定模块,用于确定所述行为记录列表中都存在的用户对应的行为记录队列;
第五确定模块,用于根据所述行为记录队列确定满足所述滑动规则中设定的时间段的用户ID;
发送模块,用于将确定的用户ID推荐给所述滑动规则的发布用户。
12.如权利要求7所述服务器,其特征在于,所述服务器还包括:
第二判断模块,在所述第一确定模块根据所述用户ID确定对应的存储单元之后,用于判断所述存储单元中的用户分组队列中是否存在所述用户ID;
所述存储模块,如果所述存储单元中的用户分组队列中不存在所述用户ID,还用于将所述用户ID存储在对应的存储单元中的用户分组队列中,以使所述服务器在进行滑动规则进行查询时确定用户对应的存储单元;
所述用户分组队列是在所述服务器进行行为记录查询时用户分组列表中任一没有被使用的用户分组队列。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510536874.3A CN106484714B (zh) | 2015-08-27 | 2015-08-27 | 一种行为记录的存储方法和设备 |
PCT/CN2016/095525 WO2017032244A1 (zh) | 2015-08-27 | 2016-08-16 | 一种行为记录的存储方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510536874.3A CN106484714B (zh) | 2015-08-27 | 2015-08-27 | 一种行为记录的存储方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106484714A true CN106484714A (zh) | 2017-03-08 |
CN106484714B CN106484714B (zh) | 2019-06-21 |
Family
ID=58099608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510536874.3A Active CN106484714B (zh) | 2015-08-27 | 2015-08-27 | 一种行为记录的存储方法和设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106484714B (zh) |
WO (1) | WO2017032244A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107797907A (zh) * | 2017-10-30 | 2018-03-13 | 江西博瑞彤芸科技有限公司 | 基于用户行为的行为数据的统计方法 |
CN111598611A (zh) * | 2020-04-27 | 2020-08-28 | 五八有限公司 | 一种积分行为处理方法、服务器、电子设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306871A (zh) * | 2020-10-29 | 2021-02-02 | 广州博冠信息科技有限公司 | 数据处理方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101287078A (zh) * | 2007-04-11 | 2008-10-15 | 三星电子株式会社 | 再现网络内容的方法和设备 |
CN101409690A (zh) * | 2008-11-26 | 2009-04-15 | 北京学之途网络科技有限公司 | 一种互联网用户行为的获取方法和系统 |
CN101510835A (zh) * | 2009-03-23 | 2009-08-19 | 北京学之途网络科技有限公司 | 一种监测网络电视系统组播业务的方法及其系统 |
CN101620618A (zh) * | 2009-07-24 | 2010-01-06 | 中兴通讯股份有限公司 | 内存存储数据的维护方法与装置 |
CN102098730A (zh) * | 2011-03-04 | 2011-06-15 | 浙江大学 | 一种基于无线传感网络的多数据流处理方法 |
CN103186554A (zh) * | 2011-12-28 | 2013-07-03 | 阿里巴巴集团控股有限公司 | 分布式数据镜像方法及存储数据节点 |
CN103488644A (zh) * | 2012-06-12 | 2014-01-01 | 联想(北京)有限公司 | 进行数据存储的方法及数据库系统 |
CN104050266A (zh) * | 2014-06-20 | 2014-09-17 | 小米科技有限责任公司 | 用户行为记录方法、装置和网页浏览器 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102760138B (zh) * | 2011-04-26 | 2015-03-11 | 北京百度网讯科技有限公司 | 用户网络行为的分类方法和装置及对应的搜索方法和装置 |
WO2012157496A1 (ja) * | 2011-05-13 | 2012-11-22 | 日本電気株式会社 | 行動提示装置、行動提示方法および記録媒体 |
WO2013118424A1 (ja) * | 2012-02-06 | 2013-08-15 | 日本電気株式会社 | ユーザグルーピングシステム、端末及びユーザグルーピング方法 |
CN103067198A (zh) * | 2012-12-14 | 2013-04-24 | 北京集奥聚合科技有限公司 | 一种关联用户CookieID的方法及系统 |
-
2015
- 2015-08-27 CN CN201510536874.3A patent/CN106484714B/zh active Active
-
2016
- 2016-08-16 WO PCT/CN2016/095525 patent/WO2017032244A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101287078A (zh) * | 2007-04-11 | 2008-10-15 | 三星电子株式会社 | 再现网络内容的方法和设备 |
CN101409690A (zh) * | 2008-11-26 | 2009-04-15 | 北京学之途网络科技有限公司 | 一种互联网用户行为的获取方法和系统 |
CN101510835A (zh) * | 2009-03-23 | 2009-08-19 | 北京学之途网络科技有限公司 | 一种监测网络电视系统组播业务的方法及其系统 |
CN101620618A (zh) * | 2009-07-24 | 2010-01-06 | 中兴通讯股份有限公司 | 内存存储数据的维护方法与装置 |
CN102098730A (zh) * | 2011-03-04 | 2011-06-15 | 浙江大学 | 一种基于无线传感网络的多数据流处理方法 |
CN103186554A (zh) * | 2011-12-28 | 2013-07-03 | 阿里巴巴集团控股有限公司 | 分布式数据镜像方法及存储数据节点 |
CN103488644A (zh) * | 2012-06-12 | 2014-01-01 | 联想(北京)有限公司 | 进行数据存储的方法及数据库系统 |
CN104050266A (zh) * | 2014-06-20 | 2014-09-17 | 小米科技有限责任公司 | 用户行为记录方法、装置和网页浏览器 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107797907A (zh) * | 2017-10-30 | 2018-03-13 | 江西博瑞彤芸科技有限公司 | 基于用户行为的行为数据的统计方法 |
CN111598611A (zh) * | 2020-04-27 | 2020-08-28 | 五八有限公司 | 一种积分行为处理方法、服务器、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2017032244A1 (zh) | 2017-03-02 |
CN106484714B (zh) | 2019-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021217863A1 (zh) | 订单标识生成方法、装置、服务器及存储介质 | |
CN107464151B (zh) | 高并发业务的订单数据处理方法及装置 | |
CN105306585B (zh) | 一种多数据中心的数据同步方法 | |
CN108510303A (zh) | 广告投放方法及装置 | |
CN105391594B (zh) | 识别特征账号的方法及装置 | |
CN101771723A (zh) | 数据同步方法 | |
CN107291779B (zh) | 缓存数据管理方法及装置 | |
CN107092641A (zh) | 店铺营业状态的判断方法和装置、店铺搜索的方法和装置 | |
CN103838855A (zh) | 余票更新的方法 | |
US20200202408A1 (en) | Systems and methods for recommendation generation | |
CN107871221A (zh) | 用于获取可销售库存数量的方法和装置 | |
CN108153783A (zh) | 一种数据缓存的方法和装置 | |
CN107483381A (zh) | 关联账户的监控方法及装置 | |
CN112003920A (zh) | 一种信息共享系统 | |
CN106484714A (zh) | 一种行为记录的存储方法和设备 | |
CN105592118B (zh) | 同步用户应用数据的方法、系统及服务端 | |
CN106326062A (zh) | 应用程序的运行状态控制方法和装置 | |
CN103902548A (zh) | 一种访问数据库的系统和方法及注册、订票、网购系统 | |
CN103218411B (zh) | 网站关联信息获取方法与装置 | |
CN107103490B (zh) | 一种数据处理方法、网络服务器及终端 | |
CN106446050A (zh) | 一种针对数据库的变化数据进行订阅的方法及系统 | |
CN104182546B (zh) | 数据库的数据查询方法及装置 | |
CN101789963A (zh) | 数据同步系统 | |
CN104486337B (zh) | 数据有效性验证方法及装置 | |
CN109542785A (zh) | 一种无效bug确定方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |