用户数据存储方法及装置制造方法及图纸

技术编号:19751301 阅读:12 留言:0更新日期:2018-12-12 05:46
本发明专利技术公开了一种用户数据存储方法及装置,属于网络技术领域。方法包括:接收携带有第一用户标识和目标聊天室标识的聊天室加入请求;将第一用户标识与接收到加入请求的时刻作为第一对应关系,添加入目标聊天室标识对应的存储集合中;为第一对应关系添加before指针,为第二对应关系添加after指针,before指针用于指向第二对应关系,after指针用于指向第一对应关系,第二对应关系为存储集合中除第一对应关系外未被添加after指针的对应关系。解决了将用户数据在内存中同时存储两份,这无疑大大占用了内存的问题;达到了达到存储用户数据所要具备的功能的目的的同时,减少内存的占用的效果。

【技术实现步骤摘要】
用户数据存储方法及装置
本专利技术涉及网络
,特别涉及一种用户数据存储方法及装置。
技术介绍
一个直播间对应的服务器用于存储加入该直播间的用户的用户数据。由于用户出入直播间的频率较高,为了确保服务器的快速响应,服务器将加入直播间的各个用户的用户数据存入内存中,即对用户数据的增删改查等操作均采用纯内存操作。数据结构是计算机存储、组织数据的方式。由于数据结构类型的存储集合与高效的检索算法和索引技术有关,因此采用数据结构对用户数据进行存储可以有效保证计算机的存储效率。由于不同类型的数据结构所具备的功能不一样,因此在选择用何种类型的数据结构存储用户数据之前,需要确定存储用户数据的结构数据所要具备的功能。对于存储直播间的用户数据的数据结构而言,需要具备的功能为保存的用户数据至少包括保存用户的用户标识以及该用户加入直播间的时刻,并能按照用户加入直播间的时间先后对存储的用户数据排序。由于数据结构ConcurrentHashMap可将用户标识和该用户加入直播间的时刻分别作为关键字key和值value同时存储。但ConcurrentHashMap添加用户标识和该用户加入直播间的时刻的过程是无序的,若额外在对已添加入ConcurrentHashMap的全部用户标识和该用户加入直播间的时刻按照用户加入时刻的先后顺序进行排序,会增加处理器的处理负担,因此还需利用数据结构Stack对用户数据进行存储,Stack以堆栈的形式进行数据的添加,也就是说,Stack在添加用户数据的同时会自动按用户加入直播间的时间先后顺序对该用户数据进行排序,但Stack只能存储一种类型的数据,即无法同时保存用户的用户标识以及该用户加入直播间的时刻,因此现有技术需将用户数据同时存储在Stack和ConcurrentHashMap中,以达到存储用户数据所要具备的功能的目的。但加入直播间,尤其是热门直播间的用户数量往往是庞大的,现有技术将用户数据在内存中同时存储两份,这无疑大大占用了内存。
技术实现思路
为了解决现有技术中将用户数据在内存中同时存储两份,这无疑大大占用了内存的问题,本专利技术实施例提供了一种用户数据存储方法及装置。所述技术方案如下:第一方面,提供了一种用户数据存储方法,所述方法包括:接收携带有第一用户标识和目标聊天室标识的聊天室加入请求;将所述第一用户标识与接收到所述加入请求的时刻作为第一对应关系,添加入所述目标聊天室标识对应的存储集合中;为所述第一对应关系添加before指针,为第二对应关系添加向后after指针,所述before指针用于指向所述第二对应关系,所述after指针用于指向所述第一对应关系,所述第二对应关系为所述存储集合中除所述第一对应关系外未被添加after指针的对应关系。第二方面,提供了一种用户数据存储装置,所述装置包括:接收模块,用于接收携带有第一用户标识和目标聊天室标识的聊天室加入请求;第一添加模块,用于将所述第一用户标识与接收到所述加入请求的时刻作为第一对应关系,添加入所述目标聊天室标识对应的存储集合中;第二添加模块,用于为所述第一对应关系添加before指针,为第二对应关系添加after指针,所述before指针用于指向所述第二对应关系,所述after指针用于指向所述第一对应关系,所述第二对应关系为所述存储集合中除所述第一对应关系外未被添加after指针的对应关系。本专利技术实施例提供的技术方案带来的有益效果是:通过将第一用户标识与接收到聊天室加入请求的时刻作为第一对应关系,添加入目标聊天室标识对应的存储集合中,为第一对应关系添加before指针,为第二对应关系添加after指针,由于用户加入直播间的时刻即为服务器接收到该用户发送加入请求的时刻,且服务器可在存储集合中同时存储用户的用户标识以及该用户加入直播间的时刻,并在添加对应关系的同时,利用before指针和after指针为该存储集合中的对应关系排序;因此解决了将用户数据在内存中同时存储两份,这无疑大大占用了内存的问题;达到了达到存储用户数据所要具备的功能的目的的同时,减少内存的占用的效果。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1A是本专利技术一个实施例提供的用户数据存储方法的方法流程图;图1B是本专利技术一个实施例提供的目标聊天室标识123对应的存储集合中对应关系的存储情况示意图;图2是本专利技术一个实施例中提供的用户数据存储装置的结构方框图;图3是本专利技术一个实施例提供的服务器的结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。请参考图1A,其示出了本专利技术一个实施例提供的用户数据存储方法的方法流程图。该用户数据存储方法可以包括如下步骤:步骤101,接收携带有第一用户标识和目标聊天室标识的聊天室加入请求。在团队语音工具中的直播互动方法包括:主播客户端和用户客户端同处一个聊天室,主播客户端以直播视频与同一聊天室的各个用户客户端进行交流,而同一聊天室的用户客户端以文字信息与主播客户端以及其它用户客户端进行交流。本实施例中,聊天室为实际应用场景中的直播间(包括视频直播间和语音直播间),本实施例不对房间的具体类型进行限定。其中,目标聊天室即为用户所要加入的聊天室。在第一用户欲加入某一聊天室时,登陆第一用户帐号的用户客户端会向服务器发送携带有第一用户标识和目标聊天室标识的聊天室加入请求,对应的,服务器会接收到携带有第一用户标识和目标聊天室标识的聊天室加入请求。步骤102,将第一用户标识与接收到聊天室加入请求的时刻作为第一对应关系,添加入目标聊天室标识对应的存储集合中。由于服务器对用户数据的增删改查等操作均采用纯内存操作,即服务器将第一对应关系添加入目标聊天室标识对应的存储集合中的时长非常短,完全可以忽略不计,因此,本实施例中将服务器接收到第一用户客户端发送的聊天室加入请求的时刻,判定为该第一用户加入目标聊天室的时刻。Map类数据结构存储数据的特点之一是可存储一对数据,即将类型不同的多个数据作为一组对应关系进行存储。在本实施例中,所有聊天室对应的存储集合存储在服务器的内存中,服务器将第一用户标识作为key,将接收到聊天室加入请求的时刻作为该key对应的value,添加到目标聊天室标识对应的存储集合中。可选的,Map类数据结构为LinkedHashMap数据结构。步骤103,为第一对应关系添加before指针,为第二对应关系添加after指针,该before指针用于指向第二对应关系,该after指针用于指向第一对应关系,该第二对应关系为存储集合中除第一对应关系外未被添加after指针的对应关系。当数据A通过before指针指向数据B时,说明数据A的上一个数据为数据B,当数据A通过after指针指向数据C时,说明数据B的下一个数据为数据C。由于Map类数据结构存储数据的过程是无序的,而指针具有指向性,因此可采用为Map类数据结构中的数据添加指针的方式,使得Map类数据结构存储的数据按照预定的规则进行排序。请参考图1B本文档来自技高网
...

【技术保护点】
1.一种用户数据存储方法,其特征在于,所述方法包括:接收携带有第一用户标识和目标聊天室标识的聊天室加入请求;将所述第一用户标识与接收到所述加入请求的时刻作为第一对应关系,添加入所述目标聊天室标识对应的存储集合中;为所述第一对应关系添加向前before指针,为第二对应关系添加向后after指针,所述before指针用于指向所述第二对应关系,所述after指针用于指向所述第一对应关系,所述第二对应关系为所述存储集合中除所述第一对应关系外未被添加after指针的对应关系。

【技术特征摘要】
1.一种用户数据存储方法,其特征在于,所述方法包括:接收携带有第一用户标识和目标聊天室标识的聊天室加入请求;将所述第一用户标识与接收到所述加入请求的时刻作为第一对应关系,添加入所述目标聊天室标识对应的存储集合中;为所述第一对应关系添加向前before指针,为第二对应关系添加向后after指针,所述before指针用于指向所述第二对应关系,所述after指针用于指向所述第一对应关系,所述第二对应关系为所述存储集合中除所述第一对应关系外未被添加after指针的对应关系。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:当接收正向获取第一预定数量的用户标识的正向获取请求时,从所述存储集合未被添加before指针的对应关系开始,根据after指针的指向正向遍历所述存储集合,依次获取所述第一预定数量的对应关系,在所述第一预定数量的对应关系中获取所述第一预定数量的用户标识;当接收逆向获取第二预定数量的用户标识的逆向获取请求时,从所述存储集合未被添加after指针的对应关系开始,根据before指针的指向逆向遍历所述存储集合,依次获取所述第二预定数量的对应关系,得到所述第二预定数量的用户标识。3.根据权利要求1所述的方法,其特征在于,所述存储集合对应有成员变量,所述成员变量用于记录所述存储集合中记录的对应关系的总数,所述成员变量的初始值为0,所述方法还包括:当向所述存储集合添加一组对应关系时,将所述成员变量加1;当从所述存储集合删除一组对应关系时,将所述成员变量减1。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:当接收到携带有第二用户标识和目标聊天室标识的用户查询请求时,利用哈希算法在所述存储集合中查询所述第二用户标识所在的对应关系,判定所述第二用户标识所在对应关系是否在所述存储集合中;当所述第二用户标识所在对应关系在所述存储集合中时,返回第一指示消息,所述第一指示消息用于指示所述第二用户标识对应的用户在所述目标聊天室标识对应的目标聊天室中;当所述第二用户标识所在对应关系不在存储集合中时,返回第二指示消息,所述第二指示消息用于指示所述第二用户标识对应的用户不在所述目标聊天室标识对应的目标聊天室中。5.根据权利要求1-4任一所述的方法,其特征在于,所述方法还包括:当接收到正向获取请求或者逆向获取请求时,为所述存储集合添加读锁,被添加读锁后的所述存储集合只能被执行正向遍历和逆向遍历的操作;当向所述存储集合添加一组对应关系时,或者当从所述存储集合删除一组对应关系时,为所述存储集合添加写锁,被添加写锁后的所述存储集合只能被执行对应关系的添加和删除操作。6.一种用户数据存储装置,其特征在于,所述装置包括:接收模块,用于接收携带有第一用户标识和目标聊天室...

【专利技术属性】
技术研发人员:石鹏李淼
申请(专利权)人:北京云中融信网络科技有限公司
类型:发明
国别省市:北京,11

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

1