直播系统及直播数据的存储和获取方法技术方案

技术编号:18356723 阅读:100 留言:0更新日期:2018-07-02 10:52
本发明专利技术实施例提供了一种直播系统及直播数据的存储和获取方法,通过主Redis服务器接收并存储直播数据,从中获得各个主播标识以及同一主播各场直播的直播标识,并将各个直播标识存储在对应主播的直播标识集合里;然后将各个直播数据与各个直播标识集合同步保存到从Redis服务器中;由从Redis服务器根据直播数据获取请求中的各个主播标识,获取对应的直播标识集合中的直播标识,从而获取与各个直播标识一一对应的直播数据,将直播数据发送到相应用户客户端。采用由主Redis服务器进行直播数据存储,从Redis服务器响应直播数据获取请求,能够更有效地应对高并发查询,减少因高并发查询造成直播数据库性能下降、产生卡顿的现象,提高直播服务的用户体验。

【技术实现步骤摘要】
直播系统及直播数据的存储和获取方法
本专利技术涉及直播
,特别是涉及一种直播系统及直播数据的存储和获取方法。
技术介绍
现有的直播系统中,直播客户端实时采集主播直播的直播数据后,同步上传至直播服务器,由直播服务器发送至直播数据库服务器中。当用户进入某一主播的直播间观看直播时,该直播服务器就响应于用户客户端发送的播放请求,直接查询直播数据库来获取该主播的直播数据,并将获取的直播数据发送给用户客户端,供用户观看。但是这种直播系统,由同一直播数据库服务器进行直播数据存储,并响应直播数据查询请求,分析所述查询请求后再获取直播数据发送给用户,当遇到大量用户同时发送播放请求而产生大量查询时,会因高并发查询造成直播数据库性能下降、产生卡顿,无法快速获取直播数据,影响直播服务的用户体验。因此,如何在高并发查询时依然能够快速获取直播数据,是现有的直播系统需要解决的问题。
技术实现思路
本专利技术实施例的目的在于提供一种直播系统及直播数据的存储和获取方法,以实现在高并发查询时依然能够快速获取直播数据。具体技术方案如下:第一方面,本专利技术实施例提供了一种直播系统,所述系统包括:直播服务器,用于接收每个主播的直播客户端提交的直播数据,发送至主Redis服务器;主Redis服务器,用于从所述直播服务器接收各个直播客户端提交的直播数据,从所述直播数据中获得各个主播的主播标识以及同一主播的各场直播的直播标识;存储所述直播数据,并将各个直播标识存储在对应主播的直播标识集合里;将存储的各个直播数据与各个直播标识集合同步保存到从Redis服务器中;从Redis服务器,用于从所述直播服务器接收各个用户客户端发送的直播数据获取请求,根据直播数据获取请求中的各个主播标识,获取主播标识对应的直播标识集合中的直播标识;根据获取的各个直播标识,获取同步保存的与各个直播标识一一对应的直播数据,将所述直播数据通过所述直播服务器发送到所述用户客户端。可选的,所述直播系统还包括:负载均衡服务器;所述从Redis服务器的数量为多个;所述主Redis服务器,将存储的各个直播数据与各个直播标识集合同步保存到每个从Redis服务器中;所述直播服务器,接收各个用户客户端发送的直播数据获取请求后,转发给所述负载均衡服务器;所述负载均衡服务器,接收到所述直播数据获取请求后,判断各个从Redis服务器当前的负载大小,从中选取负载最小的从Redis服务器作为当前从Redis服务器;将接收的直播数据获取请求发送给所述当前从Redis服务器;所述当前从Redis服务器根据直播数据获取请求中的各个主播标识,获取主播标识对应的直播标识集合中的直播标识;根据获取的各个直播标识,获取同步保存的与各个直播标识一一对应的直播数据,将所述直播数据通过所述直播服务器发送到所述用户客户端。第二方面,本专利技术实施例提供了一种直播数据的存储方法,应用于上述第一方面所述的直播系统,所述方法包括:主Redis服务器接收直播服务器发送的所述直播数据,从所述直播数据中获得各个主播的主播标识以及同一主播的各场直播的直播标识;存储所述直播数据,将各个所述直播标识存储在对应主播的直播标识集合里;将存储的各个所述直播数据与各个所述直播标识集合,同步保存到从Redis服务器中。可选的,所述将各个所述直播标识存储在对应主播的直播标识集合里的步骤,包括:将各个所述直播标识按接收时间顺序,存储在主Redis服务器中的相应主播的有序的直播标识集合里,并将所述接收时间作为所述直播标识集合里各个所述直播标识的时间标签。可选的,所述将存储的各个所述直播数据与各个所述直播标识集合,同步保存到从Redis服务器中的步骤,包括:获取所述直播系统当前的直播数据传输速率;如果当前的直播数据传输速率小于预设的数据传输速率阈值,则在当前观看的用户数量满足预设条件时,采用AOF方式将主Redis服务器中的各个直播数据同步保存至从Redis服务器;如果当前的直播数据传输速率大于等于预设的数据传输速率阈值,则采用RDB方式将主Redis服务器中的各个直播数据同步保存至从Redis服务器;采用RDB方式将主Redis服务器中的各个所述直播标识集合同步保存至从Redis服务器。可选的,所述如果当前的直播数据传输速率小于预设的数据传输速率阈值,则在用户数量满足预设条件时,采用AOF方式将主Redis服务器中的各个直播数据同步保存至从Redis服务器的步骤,包括:如果当前的直播数据传输速率小于预设的数据传输速率阈值,获取当前观看各个主播直播的用户数量;如果观看相应主播的用户数量大于等于预设的用户数量阈值,采用RDB方式将主Redis服务器中相应主播的直播数据同步保存至从Redis服务器中;如果观看相应主播的用户数量小于预设的用户数量阈值,采用AOF方式将主Redis服务器中相应主播的直播数据同步保存至从Redis服务器中。第三方面,本专利技术实施例提供了一种直播数据的获取方法,应用于上述第一方面所述的直播系统,所述方法包括:从Redis服务器从所述直播服务器接收各个用户客户端发送的直播数据获取请求,根据直播数据获取请求中的各个主播标识,获取主播标识对应的直播标识集合中的直播标识;根据获取的各个直播标识,获取同步保存的与各个直播标识一一对应的直播数据,将所述直播数据通过所述直播服务器发送到所述用户客户端。可选的,所述主播标识对应的直播标识集合为有序集合,其中的直播标识按直播数据接收时间的顺序存储;所述从Redis服务器从所述直播服务器接收各个用户客户端发送的直播数据获取请求,根据直播数据获取请求中的各个主播标识,获取主播标识对应的直播标识集合中的直播标识的步骤,包括:从Redis服务器从所述直播服务器接收各个用户客户端发送的当前直播数据获取请求;当直播标识按直播数据接收时间由远到近的顺序存储时,根据直播数据获取请求中的各个主播标识,获取主播标识对应的直播标识集合中,存储在末位的直播标识;当直播标识按直播数据接收时间由近到远的顺序存储时,根据直播数据获取请求中的各个主播标识,获取主播标识对应的直播标识集合中,存储在首位的直播标识。可选的,所述主播标识对应的直播标识集合中还包含各个直播标识的时间标签,所述时间标签用于区分各个直播数据的接收时间;所述从Redis服务器从所述直播服务器接收各个用户客户端发送的直播数据获取请求,根据直播数据获取请求中的各个主播标识,获取主播标识对应的直播标识集合中的直播标识的步骤,包括:从Redis服务器从所述直播服务器接收各个用户客户端发送的回放直播数据获取请求;根据回放直播数据获取请求中的各个主播标识和直播时间,获取主播标识对应的直播标识集合中,时间标签与所述回放直播数据获取请求中的直播时间对应的直播标识。可选的,上述第三方面的直播数据获取方法应用于上述第一方面所述的直播系统时,所述直播系统中还包括:负载均衡服务器;从Redis服务器的数量为多个;所述从Redis服务器从所述直播服务器接收各个用户客户端发送的直播数据获取请求,根据直播数据获取请求中的各个主播标识,获取主播标识对应的直播标识集合中的直播标识的步骤,包括:负载均衡服务器从所述直播服务器接收各个用户客户端发送的直播数据获取请求后,判断各个从Redis服务器当前的负载大小,本文档来自技高网...
直播系统及直播数据的存储和获取方法

【技术保护点】
1.一种直播系统,其特征在于,所述系统包括:直播服务器,用于接收每个主播的直播客户端提交的直播数据,发送至主Redis服务器;主Redis服务器,用于从所述直播服务器接收各个直播客户端提交的直播数据,从所述直播数据中获得各个主播的主播标识以及同一主播的各场直播的直播标识;存储所述直播数据,并将各个直播标识存储在对应主播的直播标识集合里;将存储的各个直播数据与各个直播标识集合同步保存到从Redis服务器中;从Redis服务器,用于从所述直播服务器接收各个用户客户端发送的直播数据获取请求,根据直播数据获取请求中的各个主播标识,获取主播标识对应的直播标识集合中的直播标识;根据获取的各个直播标识,获取同步保存的与各个直播标识一一对应的直播数据,将所述直播数据通过所述直播服务器发送到所述用户客户端。

【技术特征摘要】
1.一种直播系统,其特征在于,所述系统包括:直播服务器,用于接收每个主播的直播客户端提交的直播数据,发送至主Redis服务器;主Redis服务器,用于从所述直播服务器接收各个直播客户端提交的直播数据,从所述直播数据中获得各个主播的主播标识以及同一主播的各场直播的直播标识;存储所述直播数据,并将各个直播标识存储在对应主播的直播标识集合里;将存储的各个直播数据与各个直播标识集合同步保存到从Redis服务器中;从Redis服务器,用于从所述直播服务器接收各个用户客户端发送的直播数据获取请求,根据直播数据获取请求中的各个主播标识,获取主播标识对应的直播标识集合中的直播标识;根据获取的各个直播标识,获取同步保存的与各个直播标识一一对应的直播数据,将所述直播数据通过所述直播服务器发送到所述用户客户端。2.根据权利要求1所述的系统,直播系统还包括:负载均衡服务器;所述从Redis服务器的数量为多个;所述主Redis服务器,将存储的各个直播数据与各个直播标识集合同步保存到每个从Redis服务器中;所述直播服务器,接收各个用户客户端发送的直播数据获取请求后,转发给所述负载均衡服务器;所述负载均衡服务器,接收到所述直播数据获取请求后,判断各个从Redis服务器当前的负载大小,从中选取负载最小的从Redis服务器作为当前从Redis服务器;将接收的直播数据获取请求发送给所述当前从Redis服务器;所述当前从Redis服务器,根据直播数据获取请求中的各个主播标识,获取主播标识对应的直播标识集合中的直播标识;根据获取的各个直播标识,获取同步保存的与各个直播标识一一对应的直播数据,将所述直播数据通过所述直播服务器发送到所述用户客户端。3.一种直播数据的存储方法,其特征在于,应用于权利要求1所述的直播系统,所述方法包括:主Redis服务器接收直播服务器发送的所述直播数据,从所述直播数据中获得各个主播的主播标识以及同一主播的各场直播的直播标识;存储所述直播数据,将各个所述直播标识存储在对应主播的直播标识集合里;将存储的各个所述直播数据与各个所述直播标识集合,同步保存到从Redis服务器中。4.根据权利要求3所述的存储方法,其特征在于,所述将各个所述直播标识存储在对应主播的直播标识集合里的步骤,包括:将各个所述直播标识按接收时间顺序,存储在主Redis服务器中的相应主播的有序的直播标识集合里,并将所述接收时间作为所述直播标识集合里各个所述直播标识的时间标签。5.根据权利要求3所述的存储方法,其特征在于,所述将存储的各个所述直播数据与各个所述直播标识集合,同步保存到从Redis服务器中的步骤,包括:获取所述直播系统当前的直播数据传输速率;如果当前的直播数据传输速率小于预设的数据传输速率阈值,则在当前观看的用户数量满足预设条件时,采用AOF方式将主Redis服务器中的各个直播数据同步保存至从Redis服务器;如果当前的直播数据传输速率大于等于预设的数据传输速率阈值,则采用RDB方式将主Redis服务器中的各个直播数据同步保存至从Redis服务器;采用RDB方式将主Redis服务器中的各个所述直播标识集合同步保存至从Redis服务器。6.根据权利要求5所述的存储方法,其特征在于,所述如果当前的直播数据传输速率小于预设的数据传输速率阈值,则在用户数量满足预设条件时,采用AOF方式将主Redis...

【专利技术属性】
技术研发人员:沈文策
申请(专利权)人:福建中金在线信息科技有限公司
类型:发明
国别省市:福建,35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1