CN113905252B - 直播间的数据存储方法、装置、电子设备及存储介质 - Google Patents
直播间的数据存储方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113905252B CN113905252B CN202111087333.9A CN202111087333A CN113905252B CN 113905252 B CN113905252 B CN 113905252B CN 202111087333 A CN202111087333 A CN 202111087333A CN 113905252 B CN113905252 B CN 113905252B
- Authority
- CN
- China
- Prior art keywords
- access
- storage
- user
- room
- access record
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 62
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000013507 mapping Methods 0.000 claims abstract description 111
- 238000004590 computer program Methods 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25808—Management of client data
- H04N21/25841—Management of client data involving the geographical location of the client
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25866—Management of end-user data
- H04N21/25891—Management of end-user data being end-user preferences
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Graphics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请实施例提供了一种直播间的数据存储方法、装置、电子设备及存储介质,涉及数据存储技术领域。该方法包括以下步骤:响应于用户对直播间的访问请求,根据用户当前所处的地理位置和用户账号确定存储位置;收集到所述访问请求相应的访问记录,基于当前访问的直播间将所述访问记录映射至所述存储位置相应的链表上;基于当前访问所述直播间的时间戳以及历史访问所述直播间的时间戳,将所述访问记录存储在所述链表上。本申请的技术方案有助于提高直播数据存储的效率。
Description
技术领域
本申请涉及直播技术领域,具体而言,本申请实施例涉及直播间的数据存储方法、装置、电子设备及存储介质。
背景技术
在直播领域中,为了对观众用户的直播数据进行收集和监控,需要对观众用户在直播平台的访问记录进行存储。
目前,对于直播平台的访问记录以跳表的格式进行存储。该存储的方式将收集的新增的访问记录按照指针的指向进行存储,该头部指针的指向不是根据访问记录的时间戳的顺序进行数据的叠加存储。尤其对于大量数据进行存储,为了将满足对访问记录进行及时存储,需要增设多个指针。基于该存储方式,需要从跳表进行数据定位、插入或删除,并且对数据进行重新排序,所消耗的操作时间为O(1)~O(logn),最坏情况下时间复杂性却变成O(logn)。因此,现有的数据存储方式,需要消耗大量时间,从而降低数据处理效率。
发明内容
为了能够解决现有的直播间的数据存储技术需要效率大量的时间,降低数据处理效率的技术问题,本申请提供一种直播间的数据存储方法、装置、电子设备及存储介质。
第一方面,本申请提供一种直播间的数据存储方法,包括以下步骤:
响应于用户对直播间的访问请求,根据用户当前所处的地理位置和用户账号确定存储位置;
收集到所述访问请求相应的访问记录,基于当前访问的直播间将所述访问记录映射至所述存储位置相应的链表上;
基于当前访问所述直播间的时间戳以及历史访问所述直播间的时间戳,将所述访问记录存储在所述链表上。
在第一方面的可选实施例中,所述响应于用户对直播间的访问请求,根据用户当前所处的地理位置和用户账号确定存储位置,包括:
根据所述地理位置和用户账号,将同一地理位置的所有用户的访问记录分配至对应的存储服务器;
根据所述用户账号,将每个用户的访问记录分配至所述存储服务器分配对应的存储空间。
在第一方面的可选实施例中,所述直播间的数据存储方法,还包括:
根据所述直播间账号,将用户在对应直播间的访问记录分配至所述存储空间的存储位置。
在第一方面的可选实施例中,所述基于当前访问的直播间将所述访问记录映射至所述存储位置相应的链表上,包括:
根据所述地理位置和用户账号形成第一映射值并划分映射集合,依据所述映射集合映射至所述存储服务器;
根据所述用户账号形成第二映射值,利用所述第二映射值将每个用户的访问记录映射至所述存储空间;
根据所述直播间账号形成第三映射值,利用所述第三映射值将每个用户在对应直播间的访问记录映射至所述存储位置相应的链表上。
在第一方面的可选实施例中,所述基于当前访问所述直播间的时间戳以及历史访问所述直播间的时间戳,将所述访问记录存储在所述链表上,包括:
当确定所述用户访问过直播间时,根据当前访问所述直播间的时间戳,将所述当前的访问记录更新至所述存储位置的链表的头部。
在第一方面的可选实施例中,所述将所述当前的访问记录更新至所述存储位置的链表的头部,包括:
判断所述链表的访问记录的数量是否达到预设限值;
若是,则对所述链表的尾部的访问记录进行删除,然后根据当前访问所述直播间的时间戳将所述当前的访问记录更新至所述存储位置的链表的头部。
在第一方面的可选实施例中,所述基于当前访问所述直播间的时间戳以及历史访问所述直播间的时间戳,将所述访问记录存储在所述链表上,包括:
根据当前访问所述直播间的时间戳,将所述访问记录插入至所述链表的头指针所指向的索引位置。
在第一方面的可选实施例中,所述的直播间的数据存储方法,还包括:
当确定所述用户未访问过所述直播间时,将所述当前的访问记录更新至所述存储位置的链表的头部。
第二方面,本申请实施例提供一种直播间的数据存储装置,包括:
存储位置确定模块,用于响应于用户对直播间的访问请求,根据用户当前所处的地理位置和用户账号确定存储位置;
访问记录映射模块,用于收集到所述访问请求相应的访问记录,基于当前访问的直播间将所述访问记录映射至所述存储位置相应的链表上;
访问记录存储模块,用于基于当前访问所述直播间的时间戳以及历史访问所述直播间的时间戳,将所述访问记录存储在所述链表上。
第三方面,提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于:执行实现本申请实施例的第一方面所提供的直播间的数据存储方法。
第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本申请实施例第一方面所提供的直播间的数据存储方法。
本申请实施例提供的技术方案带来的有益效果是:
基于本申请所提供的本申请的直播间的数据存储方法,是根据用户的访问请求的用户当前所处的地理位置和用户账号在该存储服务器中确定对应的存储位置。并利用该地理位置和用户账号的组合信息将干访问记录映射至存储位置的链表上,基于当前访问该直播间的访问记录与历史访问的访问记录在时间戳的关系设定对应的索引逻辑,利用链表的结点的指针域将该当前访问该直播间的访问记录存储在与其存在直接索引逻辑的结点的下一结点上。基于本申请所提供的技术方案,能够适应基于每个访问记录对应的映射结果之间不存在规律性的数据特点,根据指针域将最新的访问记录插入至链表中。并且利用链表中的结点的排序和数据插入方式,与现有技术中的利用跳表进行数据插入,且需要对数据进行重新排序的存储方式进行对比,对应的数运算量被大幅减少,并且存储的耗时情况也得到很大的改善,有助于提高直播数据存储的效率。
本申请实施例附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请实施例的实践了解到。
附图说明
本申请实施例上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请公开的实施例所提供的一种直播间的数据存储方法的应用场景的示意图;
图2为本申请公开的实施例所提供的一种直播间的数据存储方法的流程示意图;
图3为本申请公开的实施例所提供的一种直播间的数据存储方法的执行架构图;
图4为本申请公开的实施例所提供的一种直播间的数据存储方法的步骤S110的详细流程图;
图5为本申请公开的实施例所提供的一种直播间的数据存储方法的步骤S120的详细流程图;
图6为本申请的直播间的数据存储方法的又一流程示意图;
图7为本申请实施例所提供的一种直播间的数据存储装置的结构示意图;
图8为本申请一个实施例所提供的一种直播间的数据存储的电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
为了对直播平台的数据的运行状态进行实时监控,需要将用户访问直播间所产生的访问记录进行存储。目前,对于访问记录是利用跳表进行存储的。每当用户发出直播间的访问请求时,会产生对应的访问记录。该访问记录携带有对应的用户账号、账户登录的地理位置和所访问的直播间账号等用户信息。当产生访问记录时,通过指针确认对应的存储位置以便插入当前收集得到的访问记录。在上述确定对应的存储位置在过程中,对于选择跳表结构,可以进一步对最优的插入点进行匹配,使得插入操作能够以最小的平均操作代价完成。而且,基于所选择的跳表结构建立对应的树结构,对访问记录的存储数据进行定位。
在上述过程中,每次将访问记录进行插入或者是删除时,需要重新对所存储在同一跳表的数据进行排序,以便查找最终的存储位置。而对应直播平台而言,由于用户的数量是巨大的,即使跳表的运行中可以设置多个指针进行存储,也会对服务器造成巨大的存储压力。甚至,在直播平台的繁忙时段,在同一时间点每个指针都需要处理多个访问记录的存储,而每存储一个访问记录,则需要对跳表中原有的记录进行重新排序,这样,在有限的服务器资源的情况下,很容易造成服务器宕机的危险。
即使,上述提到的宕机风险没有发生,由于每次将访问记录进行插入或者是删除时,需要重新对所存储在同一跳表的数据进行排序,需要消耗的操作时间为O(1)~O(logn),最坏情况下时间复杂性却变成O(logn)。因此,现有的数据存储方式,需要消耗大量时间,从而降低数据处理效率。
基于上述内容就直播间数据的存储方案所面临的困境,本申请提供了一种直播间的数据存储方案。
参考图1,图1为本申请公开的实施例所提供的一种直播间的数据存储方法的应用场景的示意图。
为了能够清楚描述本申请所提供的一种直播间的数据存储方法,构建一个可用于执行该直播间的数据存储方法的应用场景。该应用场景包含直播平台和多个用户和主播,涉及到的硬件设施至少包括直播平台的存储服务器和多个用户和主播的终端设备。而该多个用户可以分布在多个不同的地理区域,如图1中的地区1和地区2,该存储服务器可以根据地理区域进行对应设置,其中,存储服务器1对应地区1设置,存储服务器2对应地区2设置。用户可以通过各自的终端设备向直播平台发出访问请求,以便登录至直播平台的对应主播的直播间。其中,用户A和用户B对应存储服务器1,用户C和用户D对应存储服务器2,存储服务器1、2均可用于存储用户访问所形成的访问记录。此应用场景还可以包括平台服务器,该平台服务器用于对访问请求的数据进行处理。
在后续的方案描述中,以上述的应用场景作为基础,对该本申请所提供的一种直播间的数据存储方法进行详细描述。
参考图2,图2为本申请公开的实施例所提供的一种直播间的数据存储方法的流程示意图。
S110、响应于用户对直播间的访问请求,根据用户当前所处的地理位置和用户账号确定存储位置。
用户通过其终端设备对直播平台的应用程序进行访问操作(如点击登录、输入登录信息)或通过网页访问该直播平台,向该直播平台发出对直播平台的访问请求。根据设置,该用户的终端设备可以跳转至首页,或根据用户的历史的访问记录向用户推送的直播间推荐页等。用户在该直播间的页面对特定的直播间进行选取操作,如点击对应的直播间的显示区域,该终端设备接收到用户发出对该直播间的访问请求,并转发至直播平台的存储服务器,以便该存储服务器为该访问请求所形成的访问记录进行存储。
在该实施例中,还可进一步地利用平台服务器对访问请求进行数据处理,提取对应的访问记录并存储在对应的存储服务器中。
在本申请所提供的实施例中的直播间的数据存储方法的执行主体为存储服务器。在该存储服务器接收到用户对特定的直播间的访问请求时,利用对地址信息,如IP地址进行解析,获取该用户的终端设备当前的地理位置,以及发出访问的用户账号。并且,根据该地理位置和用户账号的组合信息,确定用于存储本次访问请求所产生的访问记录的存储位置。该存储位置可以是预先设置,并根据该地理位置和用户账号的组合信息为对应的访问记录所分配的;也可以是根据新用户的访问请求,在预设存储服务器所创建的存储位置。
无论上述列举或未列举的情况,所述的存储位置实则是用于存放该访问记录对应的数据的物理位置。
S120、收集到所述访问请求相应的访问记录,基于当前访问的直播间将所述访问记录映射至所述存储位置相应的链表上。
存储服务器接收并收集根据用户的访问记录所形成的访问记录,并从该访问记录中获取当前用户发起访问的地理位置、用户账号、甚至是其所访问的直播间的直播间信息,并对这些信息中的一项或多项内容进行映射运算,得到映射结果。将该映射结果映射至该存储服务器中特定的存储位置。在本实施例中,该存储位置可具体为对应的链表。该链表由多个结点非连续、非顺序的存储结构。链表的每个结点包括两个部分:数据存储单元和存储值下一结点地址的指针域。
在本实施例中,该链表的各个结点则是根据索引,形成由多个与映射结果对应的结点所组成的数据集合。而该索引是各个物理存储单元之间的数据存储的逻辑指针清单,用于对存储于该链表中的每个结点的访问记录的存储结构的设置,即对链表中的每个结点之间的指针域的指向进行设置。
当存储服务器接收到用户访问请求所形成的访问记录时,通过映射运算得到各自的映射结果,并根据最新存储的结点的指针域,得到存储当前映射结果的当前的结点。而该当前的结点与其上一结点是根据该指针域所连接的,该两个结点在链表中,不必存在空间上的连续性和顺序性,即该两个结点不必是两个连续排列的结点。
基于该步骤S120,能够适应基于每个访问记录对应的映射结果之间不存在规律性的数据特点,根据指针域将最新的访问记录插入至链表中。对应该链表的存储方式对应的复杂度为O(1),需要消耗的存储时间为O(1)。因此,与现有技术中的利用跳表进行数据插入,且需要对数据进行重新排序的存储方式进行对比,对应的数运算量被大幅减少,并且存储的耗时情况也得到很大的改善,有助于提高直播数据存储的效率。
S130、基于当前访问所述直播间的时间戳以及历史访问所述直播间的时间戳,将所述访问记录存储在所述链表上。
基于上述步骤S120得到的关于用户的访问记录的映射结果,并存储与该链表的执行过程中,当前访问的访问记录与历史访问的访问记录根据一定的索引逻辑进行排序。在本实施例中,根据该索引逻辑,每个访问记录所形成的时间戳的先后顺序进行指向的,也就是存在直接指向关系的两个结点所对应的访问记录的形成的时间戳是相邻的。基于该索引逻辑所形成的链表,可以根据对某个访问时间的访问记录的查询请求,查询得到对应的访问记录,以及与其相邻时间形成的访问记录。当然,也可以根据数据的特点和使用、查询需求,基于访问所述直播间的时间戳这一元素预设其他的索引逻辑,从而得到另一种存储形式的链表。
本申请所提供的本申请的直播间的数据存储方法,是根据用户的访问请求的用户当前所处的地理位置和用户账号在该存储服务器中确定对应的存储位置。并利用该地理位置和用户账号的组合信息将干访问记录映射至存储位置的链表上,基于当前访问该直播间的访问记录与历史访问的访问记录在时间戳的关系设定对应的索引逻辑,利用链表的结点的指针域将该当前访问该直播间的访问记录存储在与其存在直接索引逻辑的结点的下一结点上。基于本申请所提供的技术方案,能够适应基于每个访问记录对应的映射结果之间不存在规律性的数据特点,根据指针域将最新的访问记录插入至链表中。并且利用链表中的结点的排序和数据插入方式,与现有技术中的利用跳表进行数据插入,且需要对数据进行重新排序的存储方式进行对比,对应的数运算量被大幅减少,并且存储的耗时情况也得到很大的改善,有助于提高直播数据存储的效率。
参考图3-4,图3为本申请公开的实施例所提供的一种直播间的数据存储方法的执行架构图,图4为本申请公开的实施例所提供的一种直播间的数据存储方法的步骤S110的详细流程图。
上述实施例所提供的一种直播间的数据存储方法的步骤S110还可以进一步包括:
S111、根据所述地理位置和用户账号,将同一地理位置的所有用户的访问记录分配至对应的存储服务器;
S112、根据所述用户账号,将每个用户的访问记录分配至所述存储服务器分配对应的存储空间。
在本申请中,存在多个用户,且分布在不同地区。如图3所示,且设定该多个用户所处的地区分别为地区1和地区2,其中,用户A和用户B位于地区1,用户C和用户D位于地区2。从用户的终端设备发送的访问请求,存储服务器获取每个用户的地理位置和用户账号。在本实施例的执行架构图包括了存储服务器1和存储服务器2,每台存储服务器存储对应地区的用户访问请求所产生的访问记录。
存储服务器或平台服务器当接收到用户的访问请求时,提取用户当前的地理位置和用户账号等信息,根据该地理位置对用户账号进行地区分类,将同一地区的用户账号所产生的访问记录分配至对应的存储服务器。在本实施例中,该地区属于地理位置,而地区是按照存储服务器所覆盖的地区范围进行划分的。
根据上述对用户的地理位置的划分方法,将图3中地区1中的用户A和用户B的访问记录分配至存储服务器1,将地区2中的用户C和用户D的访问记录分配至存储服务器2。
以用户A、用户B和存储服务器1所构成的架构为例进行描述。该存储服务器1获取到访问记录后,再分别给用户A和用户B分配对应的存储区间。该存储区间用于存储特定的用户账号所产生的访问记录。在本实施例中,每个存储区间对应一个用户账号,该用户账号所产生的访问记录存储于存储服务器所分配的存储区间中。在本实施例中,该存储服务器1对应有存储区间A和存储区间B,其中,该存储区间A与用户A对应,该存储区间B与用户B对应。
在此基础上,每个存储区间用于存储每个用户账号访问的所有直播间所产生的访问记录。以用户A为例,用户A在地区1登录该直播平台所访问的所有直播间所产生的访问记录都存储在该存储区域A中。其中,该存储区域A包括了不同的存储位置。
对于该存储区域A,存储服务器1根据用户A所访问的直播间的直播间账号,将用户A访问每个直播间所产生的访问记录分配至存储空间A中的各个存储位置。在本实施例中,每个存储位置用于存储用户A在地区1访问的特定的直播间的访问记录。
图5为本申请公开的实施例所提供的一种直播间的数据存储方法的步骤S120的详细流程图。
对于上述根据用户的信息分配存储位置的基础上,步骤S120中的基于当前访问的直播间将所述访问记录映射至所述存储位置相应的链表上,可以进一步包括:
S121、根据所述地理位置和用户账号形成第一映射值并划分映射集合,依据所述映射集合映射至所述存储服务器;
S122、根据所述用户账号形成第二映射值,利用所述第二映射值将每个用户的访问记录映射至所述存储空间;
S123、根据所述直播间账号形成第三映射值,利用所述第三映射值将每个用户在对应直播间的访问记录映射至所述存储位置相应的链表上。
在本实施例中,将获取到的用户的地理位置和用户账号通过映射运算得到一个与该用户一一对应的映射值。在同一地区,如图3中的地区1中当前访问该直播平台的直播间包括多个用户,每个用户的访问记录对应一个第一映射值,同一地区的用户的第一映射值划分至同一个映射集合。并将该映射集合映射至该地区对应的存储服务器。
而该存储服务器将获取的用户的访问记录的用户账号进行映射运算形成第二映射值,并将该第二映射值映射至所述存储空间,得到该用户在该地区的访问直播间的访问记录的存储空间。
基于该映射运算所确定的存储空间,将获取的用户的访问记录的直播间账号进行映射运算形成第三映射值,并将该第三映射值映射至该存储空间的存储位置上。在本实施例中,该存储位置存储与该用户在该地区访问特定直播间的对应的链表。因此,在本步骤中,将该第三映射值映射至该链表上。
在本实施例中,待映射的存储位置,包括每个存储服务器、同一存储服务器中的每个存储空间、以及同一存储空间中的每个存储位置可作为映射运算中的一个结点,每个结点均具备与映射运算所对应的数值。因此,多个存储服务器、同一存储服务器中的多个存储空间、以及同一存储空间中的多个存储位置,均分别结合得到对应存储级别的数组。
根据上述的提供的映射存储方法,将所获取的用户的信息进行映射运算得到映射结合和/或映射值时,将该映射结合和/或映射值映射至对应存储级别的数组中,将最接近该映射结合和/或映射值的结点作为对应的访问记录的存储位置。
进一步地,上述的映射运算可以哈希算法。以上述第一映射值的运算过程为例进行说明。在该存储过程中,以用户当前的地理位置和用户账号分别作为用户的对象标识1和对象标识2,并将该对象标识1和2结合进行哈希运算,得到对应的哈希值该用户的映射值,并将哈希值映射至该执行架构中的多个存储服务器结点对应的数组。该哈希值与数组的结点的值进行对比,查找到最接近该哈希值的结点的值,并以该值的结点对应的存储服务器分配用于存储该用户在当前地区访问直播间所产生的访问记录。
进一步地,当前访问直播间存在多个用户时,参照求取单个用户的哈希运算,得到每个用户的哈希值,根据每个存储服务器的数值的范围,对所有用户的哈希值进行归类,得到不同的哈希集合作为映射集合。根据该映射集合映射至该执行架构中的多个存储服务器结点对应的数组。该映射集合与数组的结点的范围值进行对比,查找到最接近该映射集合的结点的范围值,并以该范围值的结点对应的存储服务器分配用于存储该映射集合对应的多个用户所访问直播间所产生的访问记录。
上述的存储方法是基于用户的地理位置、用户信息和所访问的直播间信息对访问请求所产生的访问记录进行分布式存储方式。基于该分布式存储方式,使得利用用户访问直播间的多维度的信息且唯一性对用户的访问路径进行准确定位,当用户在同一地区再次访问同一直播间时,能够快速搜索到对应的历史的访问记录的存储位置,从而有助于减少对新的访问记录的存储的响应时长。并且,根据该分布式存储方式,能够准确地将用户的访问记录分散至各个存储服务器进行存储。
对于步骤S130,还能够进一步包括:
当确定所述用户访问过直播间时,根据当前访问所述直播间的时间戳,将所述当前的访问记录更新至所述存储位置的链表的头部。
再次参考图3中对应于该存储空间A中的存储位置上对应一个链表。该链表用于存储在地区1中的用户A访问某个特定直播间的历史和当前的访问记录。在本实施例中,将根据用户当前的访问记录至存储位置的链表进行匹配,若匹配成功,确定用户之前在当前所处的地区访问过该直播间,否则,则该用户在当前所处的地区从未访问过该直播间。
当确定所述用户访问过直播间时,获取该用户的访问记录对应的产生的时间戳,用于与历史产生的访问记录进行区分。由于该链表是由多个结点非连续、非顺序的存储结构。链表的每个结点包括两个部分:数据存储单元和存储值下一结点地址的指针域。在本实施例,同一指针所连接的两个结点的索引逻辑是访问记录所产生的时间顺序,指针所指向的结点对应的访问记录的产生时间位于该指针所背向的结点的访问记录的产生时间之后。如图3中链表上其中一个双箭头所指向的两个结点所存储的访问记录的时间戳是相邻的。
当一个链表中的一个结点存储了最新产生的访问记录后,根据该索引逻辑,该结点的指针域作为该链表的头指针指向新的索引位置,也就是存储下一次产生的访问记录的结点。当存储服务器接收到该用户下一次在同一地区访问同一直播间所产生的访问记录时,将该访问记录映射至该头指针指向新的结点上,并将该访问记录插入至该链表的头指针所指向的新的结点。而该新的结点作为该链表当前的头部。
基于链表的存储方式,对于新的访问记录产生时,只需根据头指针所指向的结点插入该访问记录即可,而无需对历史的访问记录进行重新排序,一方面可以减少因对访问记录的重新排序所启动的数据运算压力,另一方面因此而减少数据的存储时间。
在此基础上,对每个链表的存储量进行预先设置,如结点数量或链表的长度。在将当前的访问记录更新至所述存储位置的链表的头部之前,先判断链表的访问记录的数量是否达到限值。如果是,对该链表的尾部的访问记录进行删除。
根据该链表的索引逻辑,该链表的尾部的结点所存储的访问记录在该链表中最早产生的。因此将链表的尾部的访问记录进行删除,能够保证在预设存储量的链表中存储最新产生的访问记录,并且确保访问记录的数据量控制在设定范围内,以保证存储服务器的存储功能的发挥。
若当确定所述用户未访问过所述直播间时,将当前的访问记录直接更新至该链表的头部,并生成对应的指针域,指向用于存储下一次该用户在同一地区访问同一直播间所产生的访问记录的结点。
基于上述所提供的直播间的数据存储方法,当用户在其他地区访问同一直播间,对应产生的访问记录会根据当前的地理位置,与用户账号进行映射运算,得到新的映射结果。并且,根据该新的映射结果重新确定存储服务器。而其他部分的存储方式与上述描述的是一致的。
在此基础上,根据该链表中更新的结点数据还可以更新对应存储服务器的存储日志数据,并且该存储日志数据在多个存储服务器之间共享,并且进行同一用户访问同一直播间的访问数据的对比。当确认存储该用户访问该直播间的最新的访问记录所存储的存储服务器与历史的不同时,以当前存储的存储服务器作为主存储服务器,以历史存储的存储服务器作为副存储服务器,对该用户访问同一直播间的访问记录进行整合。
为了对该直播间的数据存储方法的技术方案进行更全面、清楚地说明,参考图6,图6为本申请的直播间的数据存储方法的又一流程示意图。该执行过程如下:
S1、接收到用户对直播间的访问请求所产生的访问记录,开始本轮的数据存储;
S2、根据用户当前所处的地理位置和用户账号确定存储位置;
其中,具体依次包括步骤S21、定位存储服务器;步骤S22、定位存储空间;步骤S23、定位存储位置;
S3、判断所定位的存储位置是否存在该用户访问同一直播间的访问记录;若是,则转至S4,否则,转至S7;
S4、判断所定位的存储位置的链表的存储量是否达到预设限值;若是,则转至S5,否则转至S6;
S5、对所述链表的尾部的访问记录进行删除;
S6、更新当前访问所述直播间的时间戳;
S7、将所述当前的访问记录置于所述存储位置的链表的头部;
S8、结束本轮的数据存储。
基于与一直播间的数据存储方法相同的申请构思,本申请实施例还提供了一种直播间的数据存储装置200。参考图7,图7为本申请实施例所提供的一直播间的数据存储装置的结构示意图。
该直播间的数据存储装置200,包括:
存储位置确定模块210,用于响应于用户对直播间的访问请求,根据用户当前所处的地理位置和用户账号确定存储位置;
访问记录映射模块220,用于收集到所述访问请求相应的访问记录,基于当前访问的直播间将所述访问记录映射至所述存储位置相应的链表上;
访问记录存储模块230,用于基于当前访问所述直播间的时间戳以及历史访问所述直播间的时间戳,将所述访问记录存储在所述链表上。
基于本申请所提供的直播间的数据存储装置200,是根据用户的访问请求的用户当前所处的地理位置和用户账号在该存储服务器中确定对应的存储位置。并利用该地理位置和用户账号的组合信息将干访问记录映射至存储位置的链表上,基于当前访问该直播间的访问记录与历史访问的访问记录在时间戳的关系设定对应的索引逻辑,利用链表的结点的指针域将该当前访问该直播间的访问记录存储在与其存在直接索引逻辑的结点的下一结点上。基于本申请所提供的技术方案,能够适应基于每个访问记录对应的映射结果之间不存在规律性的数据特点,根据指针域将最新的访问记录插入至链表中。并且利用链表中的结点的排序和数据插入方式,与现有技术中的利用跳表进行数据插入,且需要对数据进行重新排序的存储方式进行对比,对应的数运算量被大幅减少,并且存储的耗时情况也得到很大的改善,有助于提高直播数据存储的效率。
可选地,所述存储位置确定模块210,用于根据所述地理位置和用户账号,将同一地理位置的所有用户的访问记录分配至对应的存储服务器;
根据所述用户账号,将每个用户的访问记录分配至所述存储服务器分配对应的存储空间。
可选地,所述存储位置确定模块210,还用于根据所述直播间账号,将用户在对应直播间的访问记录分配至所述存储空间的存储位置。
可选地,所述访问记录映射模块220,用于根据所述地理位置和用户账号所形成的第一映射值划分映射集合,依据所述映射集合映射至所述存储服务器;
根据所述用户账号所形成的第二映射值,利用所述第二映射值将每个用户的访问记录映射至所述存储空间;
根据所述直播间账号所形成的第三映射值,利用所述第三映射值将每个用户在对应直播间的访问记录映射至所述存储位置相应的链表上。
可选地,所述访问记录存储模块230,用于所述基于当前访问所述直播间的时间戳以及历史访问所述直播间的时间戳,将所述访问记录存储在所述链表上,包括:
当确定所述用户访问过直播间时,根据当前访问所述直播间的时间戳,将所述当前的访问记录更新至所述存储位置的链表的头部。
可选地,所述访问记录存储模块230,还用于判断所述链表的访问记录的数量是否达到预设限值;
若是,则对所述链表的尾部的访问记录进行删除,然后根据当前访问所述直播间的时间戳将所述当前的访问记录更新至所述存储位置的链表的头部。
可选地,所述访问记录存储模块230,还用于所述基于当前访问所述直播间的时间戳以及历史访问所述直播间的时间戳,将所述访问记录存储在所述链表上,包括:
根据当前访问所述直播间的时间戳,将所述访问记录插入至所述链表的头指针所指向的索引位置。
可选地,所述访问记录存储模块230,还用于当确定所述用户未访问过所述直播间时,将所述当前的访问记录更新至所述存储位置的链表的头部。
参照图8,图8为本申请一个实施例所提供的一种直播间的数据存储的电子设备的结构示意图。
在一个可选实施例中提供了一种电子设备,如图8所示,图8所示的电子设备300包括:处理器301和存储器303。其中,处理器301和存储器303相连,如通过总线302相连。可选地,电子设备300还可以包括收发器304。需要说明的是,实际应用中收发器304不限于一个,该电子设备300的结构并不构成对本申请实施例的限定。
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图8示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,本申请实施例中的计算机可读存储介质能够适应基于每个访问记录对应的映射结果之间不存在规律性的数据特点,根据指针域将最新的访问记录插入至链表中。并且利用链表中的结点的排序和数据插入方式,与现有技术中的利用跳表进行数据插入,且需要对数据进行重新排序的存储方式进行对比,对应的数运算量被大幅减少,并且存储的耗时情况也得到很大的改善,有助于提高直播数据存储的效率。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (11)
1.一种直播间的数据存储方法,其特征在于,包括以下步骤:
响应于用户对直播间的访问请求,根据用户当前所处的地理位置和用户账号确定存储位置;
收集到所述访问请求相应的访问记录,基于当前访问的直播间将所述访问记录映射至所述存储位置相应的链表上,包括:根据访问记录中当前用户发起访问的地理位置、用户账号、其所访问的直播间的直播间信息中的至少一种进行映射运算,将映射结果映射至存储服务器中特定的存储位置;
基于当前访问所述直播间的时间戳以及历史访问所述直播间的时间戳,将所述访问记录存储在所述链表上,包括:基于当前访问该直播间的访问记录与历史访问的访问记录在时间戳的关系确定索引逻辑,利用链表的结点的指针域将该当前访问该直播间的访问记录存储在与其存在直接索引逻辑的结点的下一结点上。
2.根据权利要求1所述的直播间的数据存储方法,其特征在于,
所述响应于用户对直播间的访问请求,根据用户当前所处的地理位置和用户账号确定存储位置,包括:
根据所述地理位置和用户账号,将同一地理位置的所有用户的访问记录分配至对应的存储服务器;
根据所述用户账号,将每个用户的访问记录分配至所述存储服务器分配对应的存储空间。
3.根据权利要求2所述的直播间的数据存储方法,其特征在于,还包括:
根据所述直播间账号,将用户在对应直播间的访问记录分配至所述存储空间的存储位置。
4.根据权利要求3所述的直播间的数据存储方法,其特征在于,
所述基于当前访问的直播间将所述访问记录映射至所述存储位置相应的链表上,包括:
根据所述地理位置和用户账号形成第一映射值并划分映射集合,依据所述映射集合映射至所述存储服务器;
根据所述用户账号形成第二映射值,利用所述第二映射值将每个用户的访问记录映射至所述存储空间;
根据所述直播间账号形成第三映射值,利用所述第三映射值将每个用户在对应直播间的访问记录映射至所述存储位置相应的链表上。
5.根据权利要求3所述的直播间的数据存储方法,其特征在于,
所述基于当前访问所述直播间的时间戳以及历史访问所述直播间的时间戳,将所述访问记录存储在所述链表上,包括:
当确定所述用户访问过直播间时,根据当前访问所述直播间的时间戳,将所述当前的访问记录更新至所述存储位置的链表的头部。
6.根据权利要求5所述的直播间的数据存储方法,其特征在于,
所述将所述当前的访问记录更新至所述存储位置的链表的头部,包括:
判断所述链表的访问记录的数量是否达到预设限值;
若是,则对所述链表的尾部的访问记录进行删除,然后根据当前访问所述直播间的时间戳将所述当前的访问记录更新至所述存储位置的链表的头部。
7.根据权利要求5和6其中一项所述的直播间的数据存储方法,其特征在于,
所述基于当前访问所述直播间的时间戳以及历史访问所述直播间的时间戳,将所述访问记录存储在所述链表上,包括:
根据当前访问所述直播间的时间戳,将所述访问记录插入至所述链表的头指针所指向的索引位置。
8.根据权利要求3所述的直播间的数据存储方法,其特征在于,
当确定所述用户未访问过所述直播间时,将所述当前的访问记录更新至所述存储位置的链表的头部。
9.一种直播间的数据存储装置,包括:
存储位置确定模块,用于响应于用户对直播间的访问请求,根据用户当前所处的地理位置和用户账号确定存储位置;
访问记录映射模块,用于收集到所述访问请求相应的访问记录,基于当前访问的直播间将所述访问记录映射至所述存储位置相应的链表上,包括:根据访问记录中当前用户发起访问的地理位置、用户账号、其所访问的直播间的直播间信息中的至少一种进行映射运算,将映射结果映射至存储服务器中特定的存储位置;
访问记录存储模块,用于基于当前访问所述直播间的时间戳以及历史访问所述直播间的时间戳,将所述访问记录存储在所述链表上,包括:基于当前访问该直播间的访问记录与历史访问的访问记录在时间戳的关系确定索引逻辑,利用链表的结点的指针域将该当前访问该直播间的访问记录存储在与其存在直接索引逻辑的结点的下一结点上。
10.一种电子设备,其特征在于,其包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据权利要求1-8任一项所述的直播间的数据存储方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-8任一项所述的直播间的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111087333.9A CN113905252B (zh) | 2021-09-16 | 2021-09-16 | 直播间的数据存储方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111087333.9A CN113905252B (zh) | 2021-09-16 | 2021-09-16 | 直播间的数据存储方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113905252A CN113905252A (zh) | 2022-01-07 |
CN113905252B true CN113905252B (zh) | 2024-04-19 |
Family
ID=79028449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111087333.9A Active CN113905252B (zh) | 2021-09-16 | 2021-09-16 | 直播间的数据存储方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113905252B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114501082B (zh) * | 2022-02-16 | 2023-10-27 | 上海哔哩哔哩科技有限公司 | 直播间分配方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104516795A (zh) * | 2015-01-15 | 2015-04-15 | 浪潮(北京)电子信息产业有限公司 | 一种数据存取方法及系统 |
CN108881963A (zh) * | 2018-05-30 | 2018-11-23 | 歌尔科技有限公司 | 数据获取方法、服务端及客户端 |
CN110677684A (zh) * | 2019-09-30 | 2020-01-10 | 北京奇艺世纪科技有限公司 | 视频处理、视频访问方法及分布式存储、视频访问系统 |
CN110798694A (zh) * | 2019-10-09 | 2020-02-14 | 北京达佳互联信息技术有限公司 | 直播间数据处理方法、装置以及电子设备、存储介质 |
CN111523072A (zh) * | 2020-04-20 | 2020-08-11 | 咪咕文化科技有限公司 | 页面访问数据统计方法、装置、电子设备及存储介质 |
-
2021
- 2021-09-16 CN CN202111087333.9A patent/CN113905252B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104516795A (zh) * | 2015-01-15 | 2015-04-15 | 浪潮(北京)电子信息产业有限公司 | 一种数据存取方法及系统 |
CN108881963A (zh) * | 2018-05-30 | 2018-11-23 | 歌尔科技有限公司 | 数据获取方法、服务端及客户端 |
CN110677684A (zh) * | 2019-09-30 | 2020-01-10 | 北京奇艺世纪科技有限公司 | 视频处理、视频访问方法及分布式存储、视频访问系统 |
CN110798694A (zh) * | 2019-10-09 | 2020-02-14 | 北京达佳互联信息技术有限公司 | 直播间数据处理方法、装置以及电子设备、存储介质 |
CN111523072A (zh) * | 2020-04-20 | 2020-08-11 | 咪咕文化科技有限公司 | 页面访问数据统计方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113905252A (zh) | 2022-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106911780B (zh) | 业务id生成方法、装置及系统 | |
KR101994021B1 (ko) | 파일 조작 방법 및 장치 | |
CN103020174B (zh) | 相似性分析方法、装置及系统 | |
CN106294190B (zh) | 一种存储空间管理方法及装置 | |
CN106294352B (zh) | 一种文件处理方法、装置和文件系统 | |
CN111291079A (zh) | 一种数据的查询方法和装置 | |
EP3076307A1 (en) | Method and device for responding to a request, and distributed file system | |
CN105354255A (zh) | 数据查询方法和装置 | |
CN109240607B (zh) | 一种文件读取方法和装置 | |
CN109766318B (zh) | 文件读取方法及装置 | |
CN110427386B (zh) | 数据处理方法、装置及计算机存储介质 | |
CN111782134B (zh) | 数据处理方法、装置、系统和计算机可读存储介质 | |
US12056089B2 (en) | Method and system for deleting obsolete files from a file system | |
CN108154024B (zh) | 一种数据检索方法、装置及电子设备 | |
CN111274004B (zh) | 进程实例管理方法、装置及计算机存储介质 | |
CN113946291A (zh) | 数据访问方法、装置、存储节点及可读存储介质 | |
CN111400334A (zh) | 数据处理方法、装置、存储介质及电子装置 | |
CN113905252B (zh) | 直播间的数据存储方法、装置、电子设备及存储介质 | |
CN111803917A (zh) | 资源的处理方法和装置 | |
CN115470156A (zh) | 基于rdma的内存使用方法、系统、电子设备和存储介质 | |
CN101483668A (zh) | 热点数据的网络存储和访问方法、设备及系统 | |
CN110334073B (zh) | 一种元数据预取方法、装置、终端、服务器及存储介质 | |
CN116991800A (zh) | 文件获取系统、方法、装置、计算机设备和存储介质 | |
CN111475535B (zh) | 数据存储、访问方法及装置 | |
CN114238264A (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 |