CN110784729B - 直播间入场流水数据处理方法、装置、设备及存储介质 - Google Patents

直播间入场流水数据处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN110784729B
CN110784729B CN201911023495.9A CN201911023495A CN110784729B CN 110784729 B CN110784729 B CN 110784729B CN 201911023495 A CN201911023495 A CN 201911023495A CN 110784729 B CN110784729 B CN 110784729B
Authority
CN
China
Prior art keywords
data
live broadcast
broadcast room
incoming
ordered queue
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
Application number
CN201911023495.9A
Other languages
English (en)
Other versions
CN110784729A (zh
Inventor
陈伟武
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Huaduo Network Technology Co Ltd
Original Assignee
Guangzhou Huaduo Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Huaduo Network Technology Co Ltd filed Critical Guangzhou Huaduo Network Technology Co Ltd
Priority to CN201911023495.9A priority Critical patent/CN110784729B/zh
Publication of CN110784729A publication Critical patent/CN110784729A/zh
Application granted granted Critical
Publication of CN110784729B publication Critical patent/CN110784729B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4335Housekeeping operations, e.g. prioritizing content for deletion because of storage space restrictions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/458Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
    • H04N21/4586Content update operation triggered locally, e.g. by comparing the version of software modules in a DVB carousel to the version stored locally
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明提供一种直播间入场流水数据处理方法、装置、设备及存储介质,过滤定时同步的全量直播间的数据,得到有效直播间的入场流水数据;基于预设生存时长和Redis存储入场流水数据,并进行实时更新;确定入场流水数据对应的有效直播间是否存在根据时间窗口排序的有序队列;若存在,获取当前最新的入场流水数据,将当前最新的入场流水数据置于有序队列的队首,并实时更新有序队列;若不存在,获取当前最新的入场流水数据,按照生存时长由大至小排列生成有序队列。过滤全量直播间的数据,得到有效直播间的入场流水数据并利用Redis存储,更新有效直播间对应的有序队列,缓解海量入场流水数据带来的内存压力,保证实时处理入场流水数据。

Description

直播间入场流水数据处理方法、装置、设备及存储介质
技术领域
本发明涉及页面处理技术领域,具体涉及一种直播间入场流水数据处理方法、装置、设备及存储介质。
背景技术
随着互联网技术的发展,直播行业逐渐发展壮大。在直播领域,需增加主播与用户之间的互动,从而提高用户在直播间的参与感,其中主播与用户之间的互动方式之一为入场流水数据展示。
目前的入场流水展示方式为:按照预设时间期限,筛选每个直播间的多条入场流水数据进行展示,例如筛选入场未超过15分钟的入场流水数据进行展示。在筛选入场流水数据时需要监听全部直播间的入场流水数据,但是由于观看直播的用户数量非常多,入场流水数据的数量级大,监听全部直播间的入场流水数据造成较大的内存压力,从而无法及时处理实时入场流水数据,导致展示入场流水数据不及时。
发明内容
有鉴于此,本发明实施例提供一种直播间入场流水数据处理方法、装置、设备及存储介质,以解决现有入场流水展示方式存在的无法及时处理实时入场流水数据的问题。
为解决上述问题,本发明实施例提供如下技术方案:
本发明实施例第一方面公开一种直播间入场流水数据处理方法,所述方法包括:
过滤定时同步的全量直播间的数据,得到有效直播间的入场流水数据;
基于预设生存时长和分布式缓存工具Redis存储所述入场流水数据,并进行实时更新;
确定所述入场流水数据对应的有效直播间是否存在根据时间窗口排序的有序队列,所述有序队列包括依据生存时长由大至小排列的N个入场流水数据,N的取值为大于等于1的正整数;
若存在,获取当前最新的入场流水数据,将所述当前最新的入场流水数据置于所述有序队列的队首,并实时更新所述有序队列;
若不存在,获取当前最新的入场流水数据,按照生存时长由大至小排列生成有序队列。
优选的,所述过滤定时同步的全量直播间的数据,得到有效直播间的入场流水数据,包括:
获取定时同步的全量直播间的房间号标识sid,并采用布隆过滤器的数据结构将所述房间号标识sid存储于内存位矩阵中;
获取定时同步的全量直播间的入场流水数据,并采用布隆过滤器对所述入场流水数据进行过滤,将过滤结果存储于内存位矩阵中;
基于所述布隆过滤器中的散列函数,判断所述散列函数对应的内存位矩阵中的位点是否标记为1;
若标记为1,确定所述位点存储的有效直播间的房间号标识sid和入场流水数据;
若标记非1,过滤所述位点存储的数据。
优选的,所述基于预设生存时长和分布式缓存工具Redis存储所述有效直播间的入场流水数据,并进行实时更新,包括:
获取有效直播间的房间号标识sid、用户标识uid和时间戳并拼接,得到用户在所述时间戳进入所述有效直播间的流标识flow_flag;
将所述流标识flow_flag作为key值,将用户入场流水对象作为value值,建立对应有效数据的key-value键值对,并设置所述key-value键值对的生存时长,所述用户入场流水对象包括用户对应的入场流水数据、入场流水用户头像和昵称;
利用分布式缓存工具Redis对所述key-value键值对进行存储,并基于所述生存时长对所述key-value键值对进行更新。
优选的,若存在,获取所述有效数据中当前最新的入场流水数据,将所述当前最新的入场流水数据置于所述有序队列的队首,并实时更新所述有序队列,包括:
若所述有效数据对应的有效直播间存在根据时间窗口排序的有序队列,获取当前最新的入场流水数据;
对所述当前最新的入场流水数据做入队操作,将所述当前最新的入场流水数据置于所述有序队列的队首,将原有序队列中已存在的入场流水数据依次后移一个位置,直至所述有效数据中的所有入场流水数据置于所述有序队列;
判断所述有序队列中的入场流水数据是否超过N个;
若超过,保留所述有序队列中前N个入场流水数据。
优选的,若不存在,获取所述有效数据中当前最新的入场流水数据,按照生存时长由大至小排列生成有序队列,包括:
若所述有效数据对应的有效直播间不存在根据时间窗口排序的有序队列,判断当前最新的入场流水数据是否超过N条;
若超过,获取当前最新的N条入场流水数据,按照生存时长由大至小排列生成有序队列;
若未超过,获取当前最新的所有入场流水数据按照生存时长由大至小排列生成有序队列。
优选的,还包括:
依据所述有序队列中的入场流水数据的位置,展示所述入场流水数据。
本发明实施例第二方面公开一种直播间入场流水数据处理装置,包括:
过滤单元,用于过滤定时同步的全量直播间的数据,得到有效直播间的有效数据,所述有效数据包括入场流水数据;
存储单元,用于基于预设生存时长和分布式缓存工具Redis存储所述有效数据中的入场流水数据,并进行实时更新;
处理单元,用于确定所述有效数据对应的有效直播间是否存在根据时间窗口排序的有序队列,所述有序队列包括依据生存时长由大至小排列的N个入场流水数据,N的取值为大于等于1的正整数;若存在,获取所述有效数据中当前最新的入场流水数据,将所述当前最新的入场流水数据置于所述有序队列的队首,并实时更新所述有序队列;若不存在,获取所述有效数据中当前最新的N条入场流水数据,按照生存时长由大至小排列生成有序队列。
优选的,所述过滤单元,包括:
第一获取模块,用于获取定时同步的全量直播间的房间号标识sid,并采用布隆过滤器的数据结构将所述房间号标识sid存储于内存位矩阵中;
第二获取模块,用于获取定时同步的全量直播间的入场流水数据,并采用布隆过滤器对所述入场流水数据进行过滤,将过滤结果存储于内存位矩阵中;
过滤模块,用于基于所述布隆过滤器中的散列函数,判断所述散列函数对应的内存位矩阵中的位点是否标记为1,若标记为1,确定所述位点存储的有效直播间的房间号标识sid和入场流水数据,若标记非1,过滤所述位点存储的数据。
本发明实施例第三方面公开一种电子设备,所述电子设备用于运行程序,其中,所述程序运行时执行如本发明实施例第一方面公开的直播间入场流水数据处理方法。
本发明实施例第四方面公开一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如本发明实施例第一方面公开的直播间入场流水数据处理方法。
基于上述本发明实施例提供的一种直播间入场流水数据处理方法、装置、设备及存储介质,该方法为:过滤定时同步的全量直播间的数据,得到有效直播间的入场流水数据;基于预设生存时长和Redis存储入场流水数据,并进行实时更新;确定入场流水数据对应的有效直播间是否存在根据时间窗口排序的有序队列;若存在,获取当前最新的入场流水数据,将当前最新的入场流水数据置于有序队列的队首,并实时更新有序队列;若不存在,获取当前最新的入场流水数据,按照生存时长由大至小排列生成有序队列。对全量直播间的数据进行过滤,得到有效直播间的入场流水数据并利用Redis进行存储,实时更新有效直播间对应的有序队列,缓解处理大量入场流水数据带来的内存压力,保证实时处理和展示入场流水数据。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种直播间入场流水数据处理方法的流程图;
图2为本发明实施例提供的得到有效直播间的入场流水数据的流程图;
图3为本发明实施例提供的基于预设生存时长和Redis存储有效直播间的入场流水数据的流程图;
图4为本发明实施例提供的实时更新有序队列的流程图;
图5为本发明实施例提供的实时更新有序队列的另一流程图;
图6为本发明实施例提供的一种直播间入场流水数据处理装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
由背景技术可知,目前的入场流水展示方式需要根据预设时间期限,监听并筛选全部直播间的入场流水数据,但是由于观看直播的用户数量非常多,入场流水数据的数量级大,监听全部直播间的入场流水数据造成较大的内存压力,从而无法及时处理实时入场流水数据,导致展示入场流水数据不及时。
因此,本发明实施例提供一种直播间入场流水数据处理方法、装置、设备及存储介质,对全量直播间的数据进行过滤,得到有效直播间的入场流水数据并利用分布式缓存工具(Redis)进行存储,实时更新有效直播间对应的有序队列,以缓解处理大量入场流水数据带来的内存压力。
参见图1,示出了本发明实施例提供的一种直播间入场流水数据处理方法的流程图,包括以下步骤:
步骤S101:过滤定时同步的全量直播间的数据,得到有效直播间的入场流水数据。
在具体实现步骤S101的过程中,预先设置定时任务,根据所述定时任务定时同步全量直播间的数据,并将各个直播间的房间号唯一标识(Security Identifiers,sid)采用布隆过滤器数据结构进行存储。
需要说明的是,所述定时任务通过定时器触发。
步骤S102:基于预设生存时长和Redis存储所述入场流水数据,并进行实时更新。
在具体实现步骤S102的过程中,预先设置Redis中键值对(key-value)的生存时长,例如设置生存时长为15分钟。以有效直播间的sid、用户标识(useridentification,uid)和时间戳拼接得到的流标识(flow_flag)作为key,用户入场流水对象作为value,将前述涉及的key-value存储至Redis中,并根据所述生存时长实时更新所述入场流水数据。
需要说明的是,所述用户流水对象包括但不仅限于入场流水信息、入场流水用户头像和用户昵称等数据。
步骤S103:确定所述入场流水数据对应的有效直播间是否存在根据时间窗口排序的有序队列。若存在,执行步骤S104,若不存在,执行步骤S105。
需要说明的是,为保证能实时和及时展示入场流水数据,需要在每个有效直播间中实时维护最新获取的前N条入场流水数据,具体维护方式为:根据过滤后得到的所述入场流水数据实时更新所述有效直播间中的有序队列。其中,所述有序队列包括依据生存时长由大至小排列的N个入场流水数据,N的取值为大于等于1的正整数。
在具体实现步骤S103的过程中,先确定所述入场流水数据对应的有效直播间是否存在根据所述有序队列,若存在,将当前最新的入场流水数据置于所述有序队列的队首,实时更新所述有序队列。若不存在,则创建所述有效直播间对应的有序队列。
需要说明的是,在更新所述有序队列的过程中,将当前最新的入场流水数据置于所述有序队列的队首,同理,也可将当前最新的入场流水数据置于所述有序队列的队尾,在本发明实施例中不做具体限定。
步骤S104:获取当前最新的入场流水数据,将所述当前最新的入场流水数据置于所述有序队列的队首,并实时更新所述有序队列。
步骤S105:获取当前最新的入场流水数据,按照生存时长由大至小排列生成有序队列。
由于所述有序队列中存储的入场流水数据的数量为N条,在具体实现步骤S105的过程中,判断当前最新的入场流水数据是否超过N条,若超过,获取当前最新的N条入场流水数据,按照生存时长由大至小排列生成有序队列,若未超过,获取当前最新的所有入场流水数据按照生存时长由大至小排列生成有序队列。
在本发明实施例中,定时同步全量直播间的数据并进行过滤,得到有效直播间的入场流水数据。预先设置入场流水数据的生存时长,利用Redis存储和更新入场流水数据。确定入场流水数据对应的有效直播间是否存在根据时间窗口排序的有序队列。若存在,获取当前最新的入场流水数据,将当前最新的入场流水数据置于有序队列的队首,并实时更新有序队列。若不存在,获取当前最新的入场流水数据,按照生存时长由大至小排列生成有序队列,缓解处理大量入场流水数据带来的内存压力,保证实时处理和展示入场流水数据。
上述本发明实施例图1步骤S101中涉及的得到有效直播间的入场流水数据的过程,参见图2,示出了本发明实施例提供的得到有效直播间的入场流水数据的流程图,包括以下步骤:
步骤S201:获取定时同步的全量直播间的sid,并采用布隆过滤器的数据结构将所述全量直播间的sid存储于内存位矩阵中。
在具体实现步骤S201的过程中,利用hash函数,例如MurMurhash函数,对所述全量直播间的sid进行hash得到所述全量直播间的sid对应的唯一hash值。对所述hash值通过散列函数映射,得到内存位矩阵的一个位点。
需要说明的是,在利用散列函数对所述全量直播间的sid对应的hash值进行映射的过程中,根据设定好的散列函数对hash值进行映射,散列函数的个数为1个或多个,在本发明实施例中不做具体限定。
为避免hash冲突,采用多个散列函数对所述全量直播间的sid对应的hash值进行映射,在利用多个散列函数对hash值映射的过程中,依次利用每个散列函数对该hash值进行映射,将该hash值映射到所述内存位矩阵的不同位点。在所述内存位矩阵中,0表示未存储,1表示存储,所述内存位矩阵中取值为0的位点指示没有将hash值映射到该位点中,所述内存位矩阵中取值为1的位点指示将hash值映射到该位点中。
步骤S202:获取定时同步的全量直播间的入场流水数据,并采用布隆过滤器对所述入场流水数据进行过滤,将过滤结果存储于内存位矩阵中。
在具体实现步骤S202的过程中,获取定时同步的全量直播间的入场流水数据,利用步骤S201中涉及的hash函数对所述入场流水数据进行hash,并利用多个步骤S201中涉及的散列函数对所述入场流水数据对应的hash值进行映射。
在对所述入场流水数据对应的hash值映射的过程中,判断所有所述散列函数所对应的内存位矩阵结果是否都为1,即判断所述散列函数对应的内存位矩阵中的位点是否标记为1。若所有所述散列函数所对应的内存位矩阵结果不都为1,过滤所述入场流水数据。若所有所述散列函数所对应的内存位矩阵结果都为1,确定所述入场流水数据为所述有效直播间的数据。
步骤S203:基于所述布隆过滤器中的散列函数,判断所述散列函数对应的内存位矩阵中的位点是否标记为1。若标记为1,执行步骤S204,若标记非1,执行步骤S205。
步骤S204:确定所述位点存储的有效直播间的sid和入场流水数据。
步骤S205:过滤所述位点存储的数据。
在本发明实施例中,利用布隆过滤器的数据结构将sid存储于内存位矩阵中,获取全量直播间的入场流水数据并采用布隆过滤器对该入场流水数据进行过滤,筛选得到有效直播间的入场流水数据,缓解处理大量入场流水数据带来的内存压力。
上述本发明实施例图1步骤S102中涉及的基于预设生存时长和Redis存储入场流水数据的过程,参见图3,示出了本发明实施例提供的基于预设生存时长和Redis存储有效直播间的入场流水数据的流程图,包括以下步骤:
步骤S301:获取有效直播间的sid、uid和时间戳并拼接,得到用户在所述时间戳进入所述有效直播间的flow_flag。
在具体实现步骤S301的过程中,从上述图2中过滤得到的有效直播间的入场流水数据中获取所述有效直播间的sid、uid和时间戳,将所述有效直播间的sid、uid和时间戳进行拼接得到用户在所述时间戳进入所述有效直播间的flow_flag。
步骤S302:将所述flow_flag作为key值,将用户入场流水对象作为value值,建立对应有效数据的key-value键值对,并设置所述key-value键值对的生存时长。
步骤S303:利用Redis对所述key-value键值对进行存储,并基于所述生存时长对所述key-value键值对进行更新。
在具体实现步骤S303的过程中,设置所述key-value键值对的生存时长,利用Redis通过过期删除、定时删除和惰性删除等方式更新所存储的key-value键值对。
在本发明实施例中,将有效直播间的flow_flag作为key,用户入场流水对象作为value值,将key-value键值对存储至Redis中,并通过设置key-value键值对的生存时长来进行数据管理,能有效缓解处理大量入场流水数据带来的内存压力,从而保证实时处理和展示入场流水数据。
上述本发明实施例图1步骤S104中涉及的更新有序队列的过程,参见图4,示出了本发明实施例提供的实时更新有序队列的流程图,包括以下步骤:
步骤S401:获取当前最新的入场流水数据。
步骤S402:对所述当前最新的入场流水数据做入队操作。
在具体实现步骤S402的过程中,为保证实时展示入场流水数据,需实时更新所述有序队列中的数据,具体更新方式为:将所述当前最新的入场流水数据置于所述有序队列的队首,将原有序队列中已存在的入场流水数据依次后移一个位置,直至所述有效数据中的所有入场流水数据置于所述有序队列。
步骤S403:判断所述有序队列中的入场流水数据是否超过N个。若超过,执行步骤S404。
在具体实现步骤S403的过程中,由于所述有序队列中存储的入场流水数据的数量为N个,在将所述当前最新的入场流水数据存储至所述有序队列后,若所述有序队列中存储的入场流水数据的数量超过N个,则只保留前N个入场流水数据。
步骤S404:保留所述有序队列中前N个入场流水数据。
优选的,依据所述有序队列中的入场流水数据的位置,展示所述入场流水数据。
在本发明实施例中,实时更新有效直播间对应的有序队列,使有序队列中所存储的入场流水数据始终为最新获取的N条入场流水数据,在展示有序队列中的入场流水数据时,实现实时展示入场流水数据。
需要说明的是,前述涉及的有序队列中存储的数据为入场流水数据对应的flow_flag,结合图3和图4示出的内容,参见图5,示出了本发明实施例提供的实时更新有序队列的另一流程图,包括以下步骤:
步骤S501:获取当前最新的入场流水数据对应的当前最新的flow_flag。
步骤S502:对所述当前最新的flow_flag做入队操作。
在具体实现步骤S502的过程中,将所述当前最新的flow_flag置于所述有序队列的队首,将原有序队列中已存在的flow_flag依次后移一个位置,直至所述有效数据对应的所有flow_flag置于所述有序队列。
例如:假设有序队列的排序位置从队首至队尾为位置1至位置N,所述有序队列当前只存在一个流标识flow_flag1,flow_flag1位于所述有序队列的位置1。获取当前最新的入场流水数据对应的流标识为flow_flag2,将flow_flag2存储至所述有序队列的位置1,将flow_flag1后移值位置2,以此类推将后续获取的入场流水数据对应的流标识存储至所述有序队列。
步骤S503:判断所述有序队列中的flow_flag是否超过N个,若超过,执行步骤S504。
步骤S504:保留所述有序队列中前N个flow_flag。
需要说明的是,展示所述有序队列中的所述入场流水数据具体指:展示所述有序队列中的flow_flag所对应的入场流水对象。具体展示方式如下详细说明:
由前述本发明实施例图1步骤S102可知,以flow_flag为key,入场流水对象作为value,并将key-value存储至Redis中。获取所述有序队列中的flag_flow,以该flag_flow作为key从所述Redis中获取与之对应的value,并将value中存储的入场流水对象展示给用户。
在本发明实施例中,实时更新有效直播间对应的有序队列,使有序队列中所存储的flag_flow始终为最新获取的N条入场流水数据所对应的flag_flow。在展示入场流水数据时,以有序队列中所存储的flag_flow为key,获取与flag_flow对应的value,向用户展示该value对应的入场流水对象,实现实时展示入场流水数据。
与上述本发明实施例提供的一种直播间入场流水数据处理方法相对应,参见图6,本发明实施例还提供一种直播间入场流水数据处理装置的结构框图,所述装置包括:过滤单元601、存储单元602和处理单元603;
过滤单元601,用于过滤定时同步的全量直播间的数据,得到有效直播间的有效数据,所述有效数据包括入场流水数据。
存储单元602,用于基于预设生存时长和Redis存储所述有效数据中的入场流水数据,并进行实时更新。
处理单元603,用于确定所述有效数据对应的有效直播间是否存在根据时间窗口排序的有序队列,所述有序队列包括依据生存时长由大至小排列的N个入场流水数据,N的取值为大于等于1的正整数;若存在,获取所述有效数据中当前最新的入场流水数据,将所述当前最新的入场流水数据置于所述有序队列的队首,并实时更新所述有序队列;若不存在,获取所述有效数据中当前最新的N条入场流水数据,按照生存时长由大至小排列生成有序队列。
在具体实现中,所述处理单元603具体用于:若所述有效数据对应的有效直播间不存在根据时间窗口排序的有序队列,判断当前最新的入场流水数据是否超过N条,若超过,获取当前最新的N条入场流水数据,按照生存时长由大至小排列生成有序队列,若未超过,获取当前最新的所有入场流水数据按照生存时长由大至小排列生成有序队列。
在本发明实施例中,定时同步全量直播间的数据并进行过滤,得到有效直播间的入场流水数据。预先设置入场流水数据的生存时长,利用Redis存储和更新入场流水数据。确定入场流水数据对应的有效直播间是否存在根据时间窗口排序的有序队列。若存在,获取当前最新的入场流水数据,将当前最新的入场流水数据置于有序队列的队首,并实时更新有序队列。若不存在,获取当前最新的入场流水数据,按照生存时长由大至小排列生成有序队列,缓解处理大量入场流水数据带来的内存压力,保证实时处理和展示入场流水数据。
优选的,结合图6示出的内容,所述过滤单元601包括:第一获取模块、第二获取模块和过滤模块,各个模块的执行原理如下:
第一获取模块,用于获取定时同步的全量直播间的sid,并采用布隆过滤器的数据结构将所述sid存储于内存位矩阵中。
第二获取模块,用于获取定时同步的全量直播间的入场流水数据,并采用布隆过滤器对所述入场流水数据进行过滤,将过滤结果存储于内存位矩阵中。
过滤模块,用于基于所述布隆过滤器中的散列函数,判断所述散列函数对应的内存位矩阵中的位点是否标记为1,若标记为1,确定所述位点存储的有效直播间的sid和入场流水数据,若标记非1,过滤所述位点存储的数据。
在本发明实施例中,利用布隆过滤器的数据结构将sid存储于内存位矩阵中,获取全量直播间的入场流水数据并采用布隆过滤器对该入场流水数据进行过滤,筛选得到有效直播间的入场流水数据,缓解处理大量入场流水数据带来的内存压力。
优选的,结合图6示出的内容,所述存储单元602包括:获取模块、设置模块和处理模块,各个模块的执行原理如下:
获取模块,用于获取有效直播间的sid、uid和时间戳并拼接,得到用户在所述时间戳进入所述有效直播间的flow_flag。
设置模块,用于将所述flow_flag作为key值,将用户入场流水对象作为value值,建立对应有效数据的key-value键值对,并设置所述key-value键值对的生存时长,所述用户入场流水对象包括用户对应的入场流水数据、入场流水用户头像和昵称。
处理模块,用于利用Redis对所述key-value进行存储,并基于所述生存时长对所述key-value进行更新。
在本发明实施例中,将有效直播间的flow_flag作为key,用户入场流水对象作为value值,将key-value键值对存储至Redis中,并通过设置key-value键值对的生存时长来进行数据管理,能有效缓解处理大量入场流水数据带来的内存压力,从而保证实时处理和展示入场流水数据。
优选的,结合图6示出的内容,所述处理单元603包括:获取模块、更新模块和处理模块,各个模块的执行原理如下:
获取模块,用于若所述有效数据对应的有效直播间存在根据时间窗口排序的有序队列,获取当前最新的入场流水数据。
更新模块,用于对所述当前最新的入场流水数据做入队操作,将所述当前最新的入场流水数据置于所述有序队列的队首,将原有序队列中已存在的入场流水数据依次后移一个位置,直至所述有效数据中的所有入场流水数据置于所述有序队列。
处理模块,用于判断所述有序队列中的入场流水数据是否超过N个,若超过,保留所述有序队列中前N个入场流水数据。
优选的,结合所述图6示出的内容,所述装置还包括:
展示单元,用于依据所述有序队列中的入场流水数据的位置,展示所述入场流水数据。
在本发明实施例中,实时更新有效直播间对应的有序队列,使有序队列中所存储的入场流水数据始终为最新获取的N条入场流水数据,在展示有序队列中的入场流水数据时,实现实时展示入场流水数据。
基于上述本发明实施例公开的一种直播间入场流水数据处理装置,上述各个模块可以通过一种由处理器和存储器构成的电子设备实现。具体为:上述各个模块作为程序单元存储于存储器中,由处理器执行存储在存储器中的上述程序单元来实现直播间入场流水数据处理。
其中,处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现直播间入场流水数据处理。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM),存储器包括至少一个存储芯片。
进一步的,本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行直播间入场流水数据处理方法。
进一步的,本发明实施例提供了一种电子设备,所述电子设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现如上任一实施例中示出的直播间入场流水数据处理方法。
本发明实施例中公开的设备可以是PC、PAD、手机等。
进一步的,本发明实施例还提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现直播间入场流水数据处理。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如上任一实施例中示出的直播间入场流水数据处理方法。
综上所述,本发明实施例提供一种直播间入场流水数据处理方法、装置、设备及存储介质,该方法为:过滤定时同步的全量直播间的数据,得到有效直播间的入场流水数据;基于预设生存时长和Redis存储入场流水数据,并进行实时更新;确定入场流水数据对应的有效直播间是否存在根据时间窗口排序的有序队列;若存在,获取当前最新的入场流水数据,将当前最新的入场流水数据置于有序队列的队首,并实时更新有序队列;若不存在,获取当前最新的入场流水数据,按照生存时长由大至小排列生成有序队列。对全量直播间的数据进行过滤,得到有效直播间的入场流水数据并利用Redis进行存储,实时更新有效直播间对应的有序队列,缓解处理大量入场流水数据带来的内存压力,保证实时处理和展示入场流水数据。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种直播间入场流水数据处理方法,其特征在于,所述方法包括:
利用布隆过滤器和所述布隆过滤器中的散列函数,过滤定时同步的全量直播间的数据,得到有效直播间的入场流水数据;
基于预设生存时长和分布式缓存工具Redis存储所述入场流水数据,并进行实时更新;
确定所述入场流水数据对应的有效直播间是否存在根据时间窗口排序的有序队列,所述有序队列包括依据生存时长由大至小排列的N个入场流水数据,N的取值为大于等于1的正整数;
若存在,获取当前最新的入场流水数据,将所述当前最新的入场流水数据置于所述有序队列的队首,并实时更新所述有序队列;
若不存在,获取当前最新的入场流水数据,按照生存时长由大至小排列生成有序队列。
2.根据权利要求1所述的方法,其特征在于,所述利用布隆过滤器和所述布隆过滤器中的散列函数,过滤定时同步的全量直播间的数据,得到有效直播间的入场流水数据,包括:
获取定时同步的全量直播间的房间号标识sid,并采用布隆过滤器的数据结构将所述房间号标识sid存储于内存位矩阵中;
获取定时同步的全量直播间的入场流水数据,并采用布隆过滤器对所述入场流水数据进行过滤,将过滤结果存储于内存位矩阵中;
基于所述布隆过滤器中的散列函数,判断所述散列函数对应的内存位矩阵中的位点是否标记为1;
若标记为1,确定所述位点存储的有效直播间的房间号标识sid和入场流水数据;
若标记非1,过滤所述位点存储的数据。
3.根据权利要求1所述的方法,其特征在于,所述基于预设生存时长和分布式缓存工具Redis存储所述有效直播间的入场流水数据,并进行实时更新,包括:
获取有效直播间的房间号标识sid、用户标识uid和时间戳并拼接,得到用户在所述时间戳进入所述有效直播间的流标识flow_flag;
将所述流标识flow_flag作为key值,将用户入场流水对象作为value值,建立对应有效数据的key-value键值对,并设置所述key-value键值对的生存时长,所述用户入场流水对象包括用户对应的入场流水数据、入场流水用户头像和昵称;
利用分布式缓存工具Redis对所述key-value键值对进行存储,并基于所述生存时长对所述key-value键值对进行更新。
4.根据权利要求1所述的方法,其特征在于,若存在,获取当前最新的入场流水数据,将所述当前最新的入场流水数据置于所述有序队列的队首,并实时更新所述有序队列,包括:
若有效数据对应的有效直播间存在根据时间窗口排序的有序队列,获取当前最新的入场流水数据;
对所述当前最新的入场流水数据做入队操作,将所述当前最新的入场流水数据置于所述有序队列的队首,将原有序队列中已存在的入场流水数据依次后移一个位置,直至所述有效数据中的所有入场流水数据置于所述有序队列;
判断所述有序队列中的入场流水数据是否超过N个;
若超过,保留所述有序队列中前N个入场流水数据。
5.根据权利要求1所述的方法,其特征在于,若不存在,获取当前最新的入场流水数据,按照生存时长由大至小排列生成有序队列,包括:
若有效数据对应的有效直播间不存在根据时间窗口排序的有序队列,判断当前最新的入场流水数据是否超过N条;
若超过,获取当前最新的N条入场流水数据,按照生存时长由大至小排列生成有序队列;
若未超过,获取当前最新的所有入场流水数据按照生存时长由大至小排列生成有序队列。
6.根据权利要求4或5所述的方法,其特征在于,还包括:
依据所述有序队列中的入场流水数据的位置,展示所述入场流水数据。
7.一种直播间入场流水数据处理装置,其特征在于,包括:
过滤单元,用于利用布隆过滤器和所述布隆过滤器中的散列函数,过滤定时同步的全量直播间的数据,得到有效直播间的有效数据,所述有效数据包括入场流水数据;
存储单元,用于基于预设生存时长和分布式缓存工具Redis存储所述有效数据中的入场流水数据,并进行实时更新;
处理单元,用于确定所述有效数据对应的有效直播间是否存在根据时间窗口排序的有序队列,所述有序队列包括依据生存时长由大至小排列的N个入场流水数据,N的取值为大于等于1的正整数;若存在,获取所述有效数据中当前最新的入场流水数据,将所述当前最新的入场流水数据置于所述有序队列的队首,并实时更新所述有序队列;若不存在,获取所述有效数据中当前最新的N条入场流水数据,按照生存时长由大至小排列生成有序队列。
8.根据权利要求7所述的装置,其特征在于,所述过滤单元,包括:
第一获取模块,用于获取定时同步的全量直播间的房间号标识sid,并采用布隆过滤器的数据结构将所述房间号标识sid存储于内存位矩阵中;
第二获取模块,用于获取定时同步的全量直播间的入场流水数据,并采用布隆过滤器对所述入场流水数据进行过滤,将过滤结果存储于内存位矩阵中;
过滤模块,用于基于所述布隆过滤器中的散列函数,判断所述散列函数对应的内存位矩阵中的位点是否标记为1,若标记为1,确定所述位点存储的有效直播间的房间号标识sid和入场流水数据,若标记非1,过滤所述位点存储的数据。
9.一种电子设备,其特征在于,所述电子设备用于运行程序,其中,所述程序运行时执行如权利要求1-6中任一所述的直播间入场流水数据处理方法。
10.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如权利要求1-6中任一所述的直播间入场流水数据处理方法。
CN201911023495.9A 2019-10-25 2019-10-25 直播间入场流水数据处理方法、装置、设备及存储介质 Active CN110784729B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911023495.9A CN110784729B (zh) 2019-10-25 2019-10-25 直播间入场流水数据处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911023495.9A CN110784729B (zh) 2019-10-25 2019-10-25 直播间入场流水数据处理方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN110784729A CN110784729A (zh) 2020-02-11
CN110784729B true CN110784729B (zh) 2020-10-30

Family

ID=69386666

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911023495.9A Active CN110784729B (zh) 2019-10-25 2019-10-25 直播间入场流水数据处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN110784729B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112966188B (zh) * 2021-03-31 2023-08-18 广州聚汇信息技术有限公司 收藏商品状态更新方法及其装置、设备与介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140379424A1 (en) * 2013-06-24 2014-12-25 Psychability Inc. Systems and methods to utilize subscriber history for predictive analytics and targeting marketing
CN105791291B (zh) * 2016-03-02 2019-09-03 腾讯科技(深圳)有限公司 网络应用的显示控制方法、显示中实时更新的方法和装置
WO2018129500A1 (en) * 2017-01-09 2018-07-12 President And Fellows Of Harvard College Optimized navigable key-value store
CN108133031B (zh) * 2017-12-29 2021-01-29 北京搜狐新媒体信息技术有限公司 一种过滤推荐视频候选结果的方法及装置

Also Published As

Publication number Publication date
CN110784729A (zh) 2020-02-11

Similar Documents

Publication Publication Date Title
US20160284317A1 (en) Method, device and system for loading and displaying pictures
CN104539977B (zh) 直播预览方法及装置
CN103338249B (zh) 缓存方法及装置
CN106973319B (zh) 一种虚拟礼物展示方法和系统
CN104572822B (zh) 文本展现方法及装置
CN110377431B (zh) 多注册中心场景下服务调用方法及装置
CN108174305A (zh) 直播聊天室的消息处理方法及装置
CN109618176B (zh) 一种直播业务的处理方法、设备和存储介质
CN106303735B (zh) 一种弹幕显示系统、方法、装置以及业务客户端
CN104935655A (zh) 数据展示方法和装置
CN105681380B (zh) 客户端离线化方法及其系统
CN110784729B (zh) 直播间入场流水数据处理方法、装置、设备及存储介质
CN113225607B (zh) 直播间礼物展示的方法与系统
CN105338564B (zh) 一种客户端适配方法、客户端、服务器以及系统
CN103116645A (zh) 移动设备浏览网页的方法及装置
CN109522282B (zh) 图片管理方法、装置、计算机装置及存储介质
CN108460042B (zh) 一种页面显示的方法、相关设备及系统
CN111314416B (zh) 数据同步方法、装置、系统、设备和存储介质
CN109213534A (zh) 一种扩展直播软件功能的方法及装置
CN103997518B (zh) 一种cdn节点文件同步方法和装置
CN105554134A (zh) 信息同步方法及装置
CN113485864B (zh) 异常检测、异常分析方法、装置、电子设备和存储介质
US8402090B2 (en) Teleconferencing apparatus, teleconferencing system, method of controlling teleconferencing apparatus, and computer-readable medium storing control program for controlling teleconferencing apparatus
CN109284188B (zh) 一种缓冲数组维护方法、装置、终端及可读介质
CN109981391B (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
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20200211

Assignee: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd.

Assignor: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd.

Contract record no.: X2021980000151

Denomination of invention: Data processing method, device, equipment and storage medium for live broadcasting room

Granted publication date: 20201030

License type: Common License

Record date: 20210107