CN104572788B - 一种游戏用户数据的数据存储方法 - Google Patents
一种游戏用户数据的数据存储方法 Download PDFInfo
- Publication number
- CN104572788B CN104572788B CN201310522552.4A CN201310522552A CN104572788B CN 104572788 B CN104572788 B CN 104572788B CN 201310522552 A CN201310522552 A CN 201310522552A CN 104572788 B CN104572788 B CN 104572788B
- Authority
- CN
- China
- Prior art keywords
- data
- values
- time
- changed
- game user
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明揭示了一种游戏用户数据的数据存储方法,将要保存的数据分为频繁改变的数据和不频繁改变的数据,对不频繁改变的数据分别预测进行MD5算法的时间和压缩保存的时间;判断进行MD5算法的时间是否小于压缩保存的时间,对不频繁改变的数据进行MD5算法处理,得到当前数据的MD5值;并判断不频繁改变的数据的MD5值与该部分数据上一次保存时的MD5值是否一致,再对数据进行压缩保存,本发明借助Md5算法,通过对比Md5值来确认需要保存的不频繁改变的数据是否发生了改变,对于未发生改变的数据免去了保存的操作,减少了保存时间,也减少了保存时发生的出错的几率,尤其是对于手游这种玩家上线下线频繁的情况,能大大减少服务器的负担。
Description
技术领域
本发明涉及网络服务器领域,特别涉及一种游戏用户数据的数据存储方法。
背景技术
在游戏中,玩家下线时或者定期会储存玩家二进制数据,现目前我们储存数据的大致步骤为:
(1)压缩数据;
(2)保存到数据库。
其中花费了较多的时间用于数据的压缩和保存,考虑一个服务器有大量的玩家有以上的操作情况,对服务器难免会带来一定的负担。在保存数据时,我们是对数据进行压缩保存的,即使数据跟上次相比未发生变化。考虑两次保存的数据一样,那么我们就作了一些无用的重复劳动,并且增加了出错的几率。
基于以上问题,目前需要解决:
(1)大量玩家保存数据时压缩保存数据的时间开销。压缩操作是一个开销比较大的操作,并且有的时候压缩操作很频繁,给服务器带来了压力。
(2)大量玩家的数据保存操作给服务器带来的压力。针对手游这种玩家上线下线频繁的情况,如果有大量的玩家上线下线,则数据保存操作很频繁,给服务器带来较大的考验。
(3)重复同样数据的保存操作带来更大的错误几率。保存同样的数据,如果正常,最终保存结果应该一致。但是,在保存数据时,增加了出错的机会。
有鉴于此,本领域发明人针对上述问题,研发了一种游戏用户数据的数据存储方法。
发明内容
本发明提供了一种游戏用户数据的数据存储方法,克服了现有技术的困难,借助Md5(信息-摘要算法)算法,通过对比Md5值来确认需要保存的不频繁改变的数据是否发生了改变,对于未发生改变的数据免去了保存的操作,减少了保存时间,也减少了保存时发生的出错的几率,尤其是对于手游这种玩家上线下线频繁的情况,能大大减少服务器的负担。
本发明采用了如下技术方案:
本发明提供了一种游戏用户数据的数据存储方法,包括以下步骤:
(1)定位数据处理点,将要保存的数据分为频繁改变的数据和不频繁改变的数据,其中,每次储存时MD5值相同的总概率大于MD5值不相同的总概率的数据为不频繁改变的数据,将其余数据定义为频繁改变的数据;
(2)对不频繁改变的数据分别预测进行MD5算法的时间和压缩保存的时间;
(3)判断进行MD5算法的时间是否小于压缩保存的时间,若是,则实行步骤(4),若否,则执行步骤(6);
(4)对不频繁改变的数据进行MD5算法处理,得到当前数据的MD5值;
(5)判断不频繁改变的数据的MD5值与该部分数据上一次保存时的MD5值是否一致,若是,则实行步骤(7),若否,则执行步骤(6);
(6)对数据进行压缩保存;
(7)统计该数据保存时的MD5值相同和不同的总概率;以及
(8)结束。
优选地,所述要保存的数据是手游玩家的账户数据。
优选地,所述要保存的数据是网络游戏角色的数据。
优选地,所述步骤(4)中,所述MD5算法将当前数据转换为十六进制数字串。
优选地,所述步骤(6)中,对数据进行压缩保存为二进制数据。
优选地,所述步骤(7)中,将以往每次保存时MD5值相同和不同的次数进行统计,求出数据的MD5值相同和不同的总概率。
优选地,所述游戏用户数据的数据存储发生在移动终端和服务器之间。
由于使用了以上技术,本发明的游戏用户数据的数据存储方法借助Md5(信息-摘要算法)算法,通过对比Md5值来确认需要保存的不频繁改变的数据是否发生了改变,对于未发生改变的数据免去了保存的操作,减少了保存时间,也减少了保存时发生的出错的几率,尤其是对于手游这种玩家上线下线频繁的情况,能大大减少服务器的负担。
以下结合附图及实施例进一步说明本发明。
附图说明
图1为本发明的游戏用户数据的数据存储方法的流程图。
具体实施方式
下面通过图1来介绍本发明的具体实施例。
第一实施例
图1为本发明的游戏用户数据的数据存储方法的流程图。如图1所示,本发明的一种游戏用户数据的数据存储方法,包括以下步骤:
(1)定位数据处理点,将要保存的数据分为频繁改变的数据和不频繁改变的数据,其中,每次储存时MD5值相同的总概率大于MD5值不相同的总概率的数据为不频繁改变的数据,将其余数据定义为频繁改变的数据。
(2)对不频繁改变的数据分别预测进行MD5算法的时间和压缩保存的时间。
(3)判断进行MD5算法的时间是否小于压缩保存的时间,若是,则实行步骤(4),若否,则执行步骤(6)。
(4)对不频繁改变的数据进行MD5算法处理,得到当前数据的MD5值。
(5)判断不频繁改变的数据的MD5值与该部分数据上一次保存时的MD5值是否一致,若是,则实行步骤(7),若否,则执行步骤(6)。
(6)对数据进行压缩保存。
(7)统计该数据保存时的MD5值相同和不同的总概率。以及
(8)结束。
优选地,所述要保存的数据是手游玩家的账户数据。
优选地,所述要保存的数据是网络游戏角色的数据。
优选地,所述步骤(4)中,所述MD5算法将当前数据转换为十六进制数字串。
优选地,所述步骤(6)中,对数据进行压缩保存为二进制数据。
优选地,所述步骤(7)中,将以往每次保存时MD5值相同和不同的次数进行统计,求出数据的MD5值相同和不同的总概率。
优选地,所述游戏用户数据的数据存储发生在移动终端和服务器之间。
Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc.April 1992)
大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为公安机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的“数字指纹”,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化。
Md5(信息-摘要算法),我们通常知道他更多的应用于安全领域,但是,他也可用于检测文件的差异。在压缩保存数据前,我们使用md5技术来检验二进制数据的差异,并把计算出的md5值lastmd5保存下来。当再次压缩保存数据时,同样的计算出md5值curmd5,并与上次保存的md5值lastmd5作比较,如果他们值是一样的,那么说明二进制数据相较于上次保存的来说并未发生变化,不需要再次压缩保存数据。
对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
本发明的游戏用户数据的数据存储方法
通过比较数据的MD5值,来决定是否需要压缩保存数据。我们可以把使用差异比对机制效果分为两种情况。情况一,如果本次MD5值与上次相同,就不用压缩保存数据了。情况二,如果本次计算的MD5值与上次不相同,则需要进一步的压缩保存数据,这种情况下多了计算MD5值得开销。因此,我们不能让情况二出现的次数太多。
我们可以把要保存的数据分为两部分:频繁改变的数据和不频繁改变的数据。针对不频繁改变的数据采用差异比对机制来处理,这样以来,第二种情况发生的概率就可能比第一种情况高,才有使用此方案的意义。
总的来说,数据存储差异比对机制的实现分以下三个步骤:
定位数据处理点(确定需要处理的数据或者分离出需要处理的数据)
根据实际的需求,找到数据保存的处理点,进行差异比对。在我们游戏中,其中的一个处理点是在保存玩家二进制数据的时候。
我们可以把要保存的数据分为两部分:频繁改变的数据和不频繁改变的数据。针对不频繁改变的数据采用差异比对机制来处理。我们使用此方案的前提是:处理的数据不能太频繁的改变,如果频繁改变的话,那么MD5值比较就会失效。这样一来,反而增加了保存数据的开销(计算MD5值)。
测试时间开销(应用差异比对机制的前提)
在应用该差异比对机制前,我们需要测试开销的差异。也就是说需要比对计算数据的MD5值时间和压缩保存数据的时间。如果计算MD5的时间开销小于或者远小于压缩保存数据的时间,那么我们可以考虑应用数据储存差异比对机制。
这里,我们把计算MD5的时间开销表示为T(MD5),把处理数据(压缩、保存)的时间开销表示为T(数据处理)。通过时间的测试,我们需要保证:
T(MD5) < T(数据处理)
MD5值的计算(差异比对的核心)
通过MD5算法计算给定数据的MD5值,通过比较本次数据MD5值和上次MD5值,来决定是否需要进一步的数据压缩和保存操作。
针对需要压缩保存的二进制数据,我们计算其MD5值,并与上次保存的MD5值做比较,如果相同,则说明本次保存的二进制数据和上次一样,我们不需要对其进行压缩保存。
(4)统计MD5值相同概率
针对我们游戏使用以上用例进行了实验,并得出了几组实验数据:
通过以上的几组实验数据,我们可以看出计算MD5值的开销与压缩二进制数据的开销相比,前者相当于后者的48%左右,这里未考虑保存数据的开销。从时间开销上来说,效果还是很客观的,但是正如前面提到的,我们得有个前提:
P(MD5值相同) > P(MD5值不相同)
这里P表示概率,“MD5值相同”表示本次要保存的数据的MD5值与上次保存时的MD5值相同。为了达到这个前提,我们需要通过实际的测试。或者把数据分组处理,把不频繁改变的数据采用该方案处理,频繁改变的数据按原来的方式处理。
本发明的游戏用户数据的数据存储方法具有以下特点:
(1)方便集成。使用方法简单,我们会提供一个正确MD5实现文件firMD5.h,只需包含该头文件,并使用上面类似的用例代码即可将差异比对机制应用到项目中。(实际应用前需要测试时间开销)。
(2)减少时间开销。我们仅对压缩数据时时间作了测试,发现计算MD5值时间开销约为压缩时间的一半,还未考虑保存数据的开销。综合考虑针对一些数据保存较频繁的地方,能够给服务器带来不小的性能提升。
(3)应用范围广。只要有类似的需求,都可以尝试采用该方案。一般来说,该方案适用于频繁的数据保存操作处。
综上可知,本发明的游戏用户数据的数据存储方法借助Md5(信息-摘要算法)算法,通过对比Md5值来确认需要保存的不频繁改变的数据是否发生了改变,对于未发生改变的数据免去了保存的操作,减少了保存时间,也减少了保存时发生的出错的几率,尤其是对于手游这种玩家上线下线频繁的情况,能大大减少服务器的负担。
以上所述的实施例仅用于说明本专利的技术思想及特点,其目的在于使本领域内的技术人员能够了解本专利的内容并据以实施,不能仅以本实施例来限定本专利的专利范围,即凡依本专利所揭示的精神所作的同等变化或修饰,仍落在本专利的专利范围内。
Claims (7)
1.一种游戏用户数据的数据存储方法,其特征在于,包括以下步骤:
(1)定位数据处理点,将要保存的数据分为频繁改变的数据和不频繁改变的数据,其中,每次储存时MD5值相同的总概率大于MD5值不相同的总概率的数据为不频繁改变的数据,将其余数据定义为频繁改变的数据;
(2)对不频繁改变的数据分别预测进行MD5算法的时间和压缩保存的时间;
(3)判断进行MD5算法的时间是否小于压缩保存的时间,若是,则实行步骤(4),若否,则执行步骤(6);
(4)对不频繁改变的数据进行MD5算法处理,得到当前数据的MD5值;
(5)判断不频繁改变的数据的所述当前数据的MD5值与上一次保存时的MD5值是否一致,若是,则实行步骤(7),若否,则执行步骤(6);
(6)对数据进行压缩保存;
(7)统计所述不频繁改变的数据保存时的MD5值相同和不同的总概率;以及
(8)结束。
2.如权利要求1所述的游戏用户数据的数据存储方法,其特征在于:所述要保存的数据是手游玩家的账户数据。
3.如权利要求1所述的游戏用户数据的数据存储方法,其特征在于:所述要保存的数据是网络游戏角色的数据。
4.如权利要求1至3中任意一项所述的游戏用户数据的数据存储方法,其特征在于:所述步骤(4)中,所述MD5算法将当前数据转换为十六进制数字串。
5.如权利要求1至3中任意一项所述的游戏用户数据的数据存储方法,其特征在于:所述步骤(6)中,对数据进行压缩保存为二进制数据。
6.如权利要求1至3中任意一项所述的游戏用户数据的数据存储方法,其特征在于:所述步骤(7)中,将以往每次保存时MD5值相同和不同的次数进行统计,求出数据的MD5值相同和不同的总概率。
7.如权利要求1至3中任意一项所述的游戏用户数据的数据存储方法,其特征在于:所述游戏用户数据的数据存储发生在移动终端和服务器之间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310522552.4A CN104572788B (zh) | 2013-10-29 | 2013-10-29 | 一种游戏用户数据的数据存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310522552.4A CN104572788B (zh) | 2013-10-29 | 2013-10-29 | 一种游戏用户数据的数据存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104572788A CN104572788A (zh) | 2015-04-29 |
CN104572788B true CN104572788B (zh) | 2017-10-17 |
Family
ID=53088862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310522552.4A Active CN104572788B (zh) | 2013-10-29 | 2013-10-29 | 一种游戏用户数据的数据存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572788B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101320372A (zh) * | 2008-05-22 | 2008-12-10 | 上海爱数软件有限公司 | 一种重复数据的压缩方法 |
CN102739769A (zh) * | 2011-04-14 | 2012-10-17 | 三星电子株式会社 | 便携式终端的同步方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9058298B2 (en) * | 2009-07-16 | 2015-06-16 | International Business Machines Corporation | Integrated approach for deduplicating data in a distributed environment that involves a source and a target |
-
2013
- 2013-10-29 CN CN201310522552.4A patent/CN104572788B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101320372A (zh) * | 2008-05-22 | 2008-12-10 | 上海爱数软件有限公司 | 一种重复数据的压缩方法 |
CN102739769A (zh) * | 2011-04-14 | 2012-10-17 | 三星电子株式会社 | 便携式终端的同步方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104572788A (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110572362B (zh) | 针对多类不均衡异常流量的网络攻击检测方法及装置 | |
KR102279983B1 (ko) | 딥러닝 알고리즘을 이용한 비지도 방식의 네트워크 침입 탐지 방법 및 이를 실행하기 위한 프로그램이 기록된 기록매체 | |
US20170300595A1 (en) | Data packet extraction method and apparatus | |
WO2011066867A1 (en) | Random data stream sampling | |
US11733867B2 (en) | System and method for multiple pass data compaction utilizing delta encoding | |
CN111260220A (zh) | 群控设备识别方法、装置、电子设备和存储介质 | |
CN115037543A (zh) | 一种基于双向时间卷积神经网络的异常网络流量检测方法 | |
CN111370064A (zh) | 基于simd的哈希函数的基因序列快速分类方法及系统 | |
CN112350956A (zh) | 一种网络流量识别方法、装置、设备及机器可读存储介质 | |
CN110990603B (zh) | 用于分段图像数据的格式识别的方法和系统 | |
CN111310918A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
Scheike et al. | Maximum likelihood estimation for tied survival data under Cox regression model via EM-algorithm | |
CN104572788B (zh) | 一种游戏用户数据的数据存储方法 | |
US20170039484A1 (en) | Generating negative classifier data based on positive classifier data | |
CN110601909B (zh) | 网络维护方法、装置、计算机设备和存储介质 | |
CN116170227A (zh) | 一种流量异常的检测方法、装置、电子设备及存储介质 | |
Duquesne | An elementary proof of Hawkes's conjecture on Galton-Watson trees. | |
WO2016061964A1 (zh) | Rohc压缩器的ir态回迁周期选择方法、装置和存储介质 | |
CN115347902B (zh) | 存储系统镜像数据传输过程中自适应压缩方法及系统 | |
CN111159961A (zh) | 一种基于曲线数据的异常检测方法及系统 | |
CN112433932B (zh) | 一种数据处理方法、装置以及计算机存储介质 | |
CA2609863C (en) | Messaging method | |
CN117827147A (zh) | 一种比特频数筛查方法、装置、电子设备及介质 | |
Gu et al. | Meta-TFEN: A Multi-Modal Deep Learning Approach for Encrypted Malicious Traffic Detection | |
CN114756366A (zh) | 一种边缘计算方法及边缘计算服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |