一种游戏数据的处理方法、装置、服务器及存储介质制造方法及图纸

技术编号:26342415 阅读:20 留言:0更新日期:2020-11-13 20:33
本发明专利技术公开了一种游戏数据的处理方法、装置、服务器及存储介质,其中,该方法包括:确定内存中的多个链表缓存空间;为多个链表缓存空间中每个链表缓存空间配置不同的第一散列值,该第一散列值为预设哈希算法的输出;在获取到游戏数据库返回的至少一个游戏数据时,利用预设哈希算法确定该至少一个游戏数据中每个游戏数据的第二散列值;根据第二散列值与第一散列值的匹配情况,确定每个游戏数据对应的第一目标链表缓存空间;将至少一个游戏数据分别写入相对应的第一目标链表缓存空间中。本发明专利技术将游戏数据分片存储于不同的链表缓存空间中,多个线程通过读取不同的链表缓存空间可以实现并发执行,满足了MMORPG游戏对高并发处理能力的要求。

The invention relates to a processing method, device, server and storage medium of game data

【技术实现步骤摘要】
一种游戏数据的处理方法、装置、服务器及存储介质
本专利技术涉及游戏数据处理
,特别涉及一种游戏数据的处理方法、装置、服务器及存储介质。
技术介绍
网络游戏也称在线游戏,一般指多名玩家透过计算机互联网进行交互娱乐的电子游戏。其中,大型多人在线角色扮演游戏(MassiveMultiplayerOnlineRole-PlayingGame,简称为MMORPG)是电子角色扮演游戏按电子游戏人数分类分别出来的一种网络游戏。在所有MMORPG中,玩家都可扮演一个或多个虚拟角色,并控制该角色在游戏的虚拟世界中进行活动与行为。在MMORPG中,由于游戏的玩法数据繁多,游戏服务端由于内存空间有限,无法将游戏数据全部加载至内存,因此一般将游戏数据存储于远端存储组件(远端的游戏数据库),仅当游戏服务端需要访问时将相关游戏数据读取至内存,但是游戏服务端访问远端存储组件会带来较大时延,鉴于此,一般使用游戏服务端的内存缓存保存远端存储组件返回的游戏数据,如此游戏服务端在下次访问该游戏数据时可以直接读取内存缓存,而无需访问远端存储组件。相关技术中常采用LRU(LeastRecentlyUsed,最近最少使用)缓存机制将远端返回的游戏数据存储在游戏服务端的内存缓存中,在多线程访问缓存的情况下,由于每次的LRU缓存访问时都需要调整LRU缓存的数据结构,因此相关技术的LRU缓存机制无法实现不同线程对LRU缓存的并发访问,每次读写缓存时必须对LRU缓存加锁,读写结束后再解锁,以保证线程安全性。然而对于MMORPG游戏来说,其玩家数量众多,对高并发处理能力的要求较高,多线程访问LRU缓存时加锁以及访问结束后解锁将导致并发处理能力大大降低,无法满足MMORPG游戏对并发处理能力的要求。
技术实现思路
为了解决现有技术的问题,本专利技术实施例提供了一种游戏数据的处理方法、装置、服务器及存储介质。所述技术方案如下:一方面,提供了一种游戏数据的处理方法,所述方法包括:确定内存中的多个链表缓存空间,所述多个链表缓存空间用于以链表形式存储游戏数据;为所述多个链表缓存空间中每个链表缓存空间配置不同的第一散列值,所述第一散列值为预设哈希算法的输出;在获取到游戏数据库返回的至少一个游戏数据时,利用所述预设哈希算法确定所述至少一个游戏数据中每个游戏数据的第二散列值;根据所述第二散列值与所述第一散列值的匹配情况,确定每个游戏数据对应的第一目标链表缓存空间;将所述至少一个游戏数据分别写入相对应的第一目标链表缓存空间中。另一方面,提供了一种游戏数据的处理装置,所述装置包括:第一确定模块,用于确定内存中的多个链表缓存空间,所述多个链表缓存空间用于以链表形式存储游戏数据;配置模块,用于为所述多个链表缓存空间中每个链表缓存空间配置不同的第一散列值,所述第一散列值为预设哈希算法的输出;第二确定模块,用于在获取到游戏数据库返回的至少一个游戏数据时,利用所述预设哈希算法确定所述至少一个游戏数据中每个游戏数据的第二散列值;第三确定模块,用于根据所述第二散列值与所述第一散列值的匹配情况,确定每个游戏数据对应的第一目标链表缓存空间;写入模块,用于将所述至少一个游戏数据分别写入相对应的第一目标链表缓存空间中。可选的,所述第二确定模块包括:第四确定模块,用于确定所述至少一个游戏数据中每个游戏数据的数据标识;计算模块,用于将每个游戏数据的数据标识对所述多个链表缓存空间的总数量取余,得到所述每个游戏数据对应的余数;第五确定模块,用于将所述余数确定为相应游戏数据的第二散列值,得到所述至少一个游戏数据中每个游戏数据的第二散列值。可选的,所述装置还包括:第六确定模块,用于在接收到对目标游戏数据的访问请求时,利用所述预设哈希算法确定所述目标游戏数据的第三散列值;第七确定模块,用于根据所述第三散列值与所述第一散列值的匹配情况,确定存储所述目标游戏数据的第二目标链表缓存空间;读取模块,用于从所述第二目标链表缓存空间中读取所述目标游戏数据。可选的,所述读取模块包括:第八确定模块,用于确定所述目标游戏数据在所述第二目标链表缓存空间中的目标内存地址指针;第一获取模块,用于基于取地址运算获取所述目标内存地址指针所对应的目标内存地址;地址转换模块,用于将所述目标内存地址转换为目标物理地址,根据所述目标物理地址读取所述目标游戏数据。可选的,所述装置还包括:第一更新模块,用于对所述第二目标链表缓存空间中所述目标游戏数据的引用计数进行第一更新操作,所述第一更新操作包括对所述引用计数加1;第二更新模块,用于在确定结束对所述目标游戏数据的使用时,对所述第二目标链表缓存空间中所述目标游戏数据的引用计数进行第二更新操作,所述第二更新操作包括对所述引用计数减1;第一删除模块,用于在所述目标游戏数据的引用计数为零时,将所述目标游戏数据从所述第二目标链表缓存空间中删除。可选的,所述多个链表缓存空间中每个链表缓存空间包括位于首部的热区空间和位于尾部的冷区空间,所述热区空间用于存储访问频次超过预设频次阈值的游戏数据,所述冷区空间用于存储访问频次未超过预设频次阈值的游戏数据;相应的,所述装置还包括:访问频次更新模块,用于对所述第二目标链表缓存空间中所述目标游戏数据的访问频次加1,得到更新访问频次;判断模块,用于判断所述更新访问频次是否超过所述预设频次阈值;存储模块,用于在判断模块判断的结果为是时,将所述目标游戏数据存储在所述第二目标链表缓存空间的热区空间中。可选的,所述装置还包括:第九确定模块,用于针对所述多个链表缓存空间中的每个链表缓存空间,确定所述链表缓存空间中存储于冷区空间的每个游戏数据的第一访问频次;第十确定模块,用于确定所述第一访问频次小于或者等于预设淘汰频次的至少一个待淘汰游戏数据;第二删除模块,用于将所述至少一个待淘汰游戏数据从所述链表缓存空间中删除。另一方面,提供了一种游戏服务器,包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现上述游戏数据的处理方法。另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上述的游戏数据的处理方法。本专利技术实施例通过确定内存中的多个链表缓存空间,为该多个链表缓存空间中每个链表缓存空间配置不同的第一散列值,并在获取到游戏数据库返回的至少一个游戏数据时,利用输出上述第一散列值的预设哈希算法确定该至少一个游戏数据中每个游戏数据的第二散列值,进而根据第二散列值与第一散列值的匹配情况确定每个游戏数据对应的第一目标链表缓存空间,并将上述至少一个游戏数据分别写入相对应的第一目标链表缓存空间中,从而将游戏数据分片存储于不本文档来自技高网
...

【技术保护点】
1.一种游戏数据的处理方法,其特征在于,所述方法包括:/n确定内存中的多个链表缓存空间,所述多个链表缓存空间用于以链表形式存储游戏数据;/n为所述多个链表缓存空间中每个链表缓存空间配置不同的第一散列值,所述第一散列值为预设哈希算法的输出;/n在获取到游戏数据库返回的至少一个游戏数据时,利用所述预设哈希算法确定所述至少一个游戏数据中每个游戏数据的第二散列值;/n根据所述第二散列值与所述第一散列值的匹配情况,确定每个游戏数据对应的第一目标链表缓存空间;/n将所述至少一个游戏数据分别写入相对应的第一目标链表缓存空间中。/n

【技术特征摘要】
1.一种游戏数据的处理方法,其特征在于,所述方法包括:
确定内存中的多个链表缓存空间,所述多个链表缓存空间用于以链表形式存储游戏数据;
为所述多个链表缓存空间中每个链表缓存空间配置不同的第一散列值,所述第一散列值为预设哈希算法的输出;
在获取到游戏数据库返回的至少一个游戏数据时,利用所述预设哈希算法确定所述至少一个游戏数据中每个游戏数据的第二散列值;
根据所述第二散列值与所述第一散列值的匹配情况,确定每个游戏数据对应的第一目标链表缓存空间;
将所述至少一个游戏数据分别写入相对应的第一目标链表缓存空间中。


2.根据权利要求1所述的游戏数据的处理方法,其特征在于,所述利用所述预设哈希算法确定所述至少一个游戏数据中每个游戏数据的第二散列值包括:
确定所述至少一个游戏数据中每个游戏数据的数据标识;
将每个游戏数据的数据标识对所述多个链表缓存空间的总数量取余,得到所述每个游戏数据对应的余数;
将所述余数确定为相应游戏数据的第二散列值,得到所述至少一个游戏数据中每个游戏数据的第二散列值。


3.根据权利要求1所述的游戏数据的处理方法,其特征在于,所述方法还包括:
在接收到对目标游戏数据的访问请求时,利用所述预设哈希算法确定所述目标游戏数据的第三散列值;
根据所述第三散列值与所述第一散列值的匹配情况,确定存储所述目标游戏数据的第二目标链表缓存空间;
从所述第二目标链表缓存空间中读取所述目标游戏数据。


4.根据权利要求3所述的游戏数据的处理方法,其特征在于,所述从所述第二目标链表缓存空间中读取所述目标游戏数据包括:
确定所述目标游戏数据在所述第二目标链表缓存空间中的目标内存地址指针;
基于取地址运算获取所述目标内存地址指针所对应的目标内存地址;
将所述目标内存地址转换为目标物理地址,根据所述目标物理地址读取所述目标游戏数据。


5.根据权利要求4所述的游戏数据的处理方法,其特征在于,在根据所述目标物理地址读取所述目标游戏数据之后,所述方法还包括:
对所述第二目标链表缓存空间中所述目标游戏数据的引用计数进行第一更新操作,所述第一更新操作包括对所述引用计数加1;
在确定结束对所述目标游戏数据的使用时,对所述第二目标链表缓存空间中所述目标游戏数据的引用计数进行第二更新操作,所述第二更新操作包括对所述引用计数减1;
在所述目标...

【专利技术属性】
技术研发人员:谢亚晋
申请(专利权)人:腾讯科技成都有限公司
类型:发明
国别省市:四川;51

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

1